/** * 冒泡排序 * 每次查找最大的元素放到列表最后 * @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)