排序算法总结

 /**
     * 冒泡排序
     * 每次查找最大的元素放到列表最后
     * @param arr
     */
    public static void bubbleSort(int arr[]){
        int temp = 0;
        for (int i = 0,j=arr.length; i < j; i++) {
            for (int k = 0; k < j-i-1; k++) {
                if(arr[k]>arr[k+1]){
                    temp = arr[k+1];
                    arr[k+1] = arr[k];
                    arr[k] = temp;
                }
            }
            System.out.println("
第"+(i+1)+"次排序结果:");
            for (int x : arr) {
                System.out.print(x+",");
            }
        }
    }

    /**
     * 选择排序
     * 每次将最大的数选择出来放入起始位置。
     * @param arr
     */
    public static void selectSort(int[] arr){
        int temp = 0;
        for (int i = 0 , x=arr.length; i < x; i++) {
            for (int j = x-1; j > i; j--) {
                if(arr[j]>arr[i]){
                    temp = arr[j];
                    arr[j] = arr[i];
                    arr[i] = temp;
                }
            }
            System.out.println("
第"+(i+1)+"次排序结果:");
            for (int m : arr) {
                System.out.print(m+",");
            }
        }
    }

    /**
     * 插入排序
     * 将第一个元素视为已排序的序列
     * 之后的元素与这个有序序列的元素进行比较,插入较小元素之后
     * @param arr
     */
    public static void insertSort(int[] arr){
        for (int i = 0,m = arr.length;i < m; i++) {
            int temp = arr[i];
            for (;i > 0 && temp < arr[i-1]; i--) {
                arr[i] = arr[i-1];
                arr[i-1] = temp;
            }
            System.out.println("
第"+(i+1)+"次排序结果:");
            for (int k : arr) {
                System.out.print(k+",");
            }
        }
    }

时间复杂度:平均都是O(n2)

原文地址:https://www.cnblogs.com/huaxingtianxia/p/6531971.html