A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

public class BubbleOrde {
        public static void main(String[] args) {
                int[] arr = { 32, 15, 45, 36, 89, 20 };
                // 排序前
                printArray(arr);
                System.out.println("---------");
                System.out.println("选择排序");
                // 选择排序
                selectSort(arr);
                printArray(arr);
                System.out.println("---------");
                System.out.println("冒泡排序");
                // 冒泡排序
                bubbleSort(arr);
                printArray(arr);

        }

        /**
         * 数组排序--选择排序法
         *
         * @param arr
         *            查找数组
         */
        public static void selectSort(int[] arr) {
                // 外环控制比较的次数
                for (int i = 0; i < arr.length - 1; i++) {
                        // 内环控制比较
                        for (int j = i + 1; j < arr.length; j++) {
                                if (arr[i] > arr[j]) {
                                        int temp = arr[i];
                                        arr[i] = arr[j];
                                        arr[j] = temp;
                                }
                        }
                }
        }

        /**
         * 选择的排序方法
         *
         * @param arr
         *            查找数组
         */

        /**
         * 冒泡排序--相邻的两个元素比较,小的往前靠,大的数往后靠
         *
         * @param arr
         */
        public static void bubbleSort(int[] arr) {
                // 外环控制比较的次数
                for (int i = 0; i < arr.length - 1; i++) {
                        // 内环控制比较
                        for (int j = 0; j < arr.length - 1 - i; j++) {// -i:让每次比较的元素减少,-1
                                                                                                                        // 避免数组越界
                                // 第一个元素第j+1个元素比较,以此逐次减少
                                if (arr[j] > arr[j + 1]) {
                                        int temp = arr[j];
                                        arr[j] = arr[j + 1];
                                        arr[j + 1] = temp;

                                }
                        }
                }

        }

        /**
         * 打印输出数组元素的方法
         *
         * @param arr
         */
        public static void printArray(int[] arr) {
                System.out.print("[");
                for (int i = 0; i < arr.length; i++) {
                        if (i != arr.length - 1) {
                                System.out.print(arr[i] + ",");
                        } else {
                                System.out.println(arr[i] + "]");
                        }
                }
        }

}

2 个回复

倒序浏览
你这个是不有问题呀
回复 使用道具 举报
很好,受教了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马