黑马程序员技术交流社区

标题: Java基础之选择排序和冒泡排序法 [打印本页]

作者: 知行合意    时间: 2015-8-3 21:47
标题: Java基础之选择排序和冒泡排序法
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] + "]");
                        }
                }
        }

}

作者: wusi    时间: 2015-8-4 00:36
你这个是不有问题呀
作者: kissfrd    时间: 2015-8-4 01:13
很好,受教了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2