各种排序算法总结
排序算法 时间复杂度(最好) 时间复杂度(最坏) 时间复杂度(平均) 空间复杂度 稳定性 冒泡排序 O(N) O(N 2 ) O(N 2 ) O(1) 稳定 选择排序 O(N 2 ) O(N 2 ) O(N 2 ) O(1) 不稳定 插入排序 O(N) O(N 2 ) O(N 2 ) O(1) 稳定 希尔排序 取决于增量序列 O(N 2 ) 取决于增量序列 O(1) 不稳定 快速排序 O(N 2 ) O(NlogN) O(NlogN) O(logN) 不稳定 归并排序 O(NlogN) O(NlogN) O(NlogN) O(N) 稳定 堆排序 O(NlogN) O(NlogN) O(NlogN) O(1) 不稳定 计数排序 桶排序 冒 泡排序 冒泡排序是不断比较相邻两个元素,并不断交换,最后把大的放到数组后面。第一趟遍历会把最大的元素放到(n-1)位置,第二趟遍历会把第二大的元素放到(n-2)的位置,以此类推。 public int[] sortArray(int[] nums) { for(int i = 0; i < nums.length - 1; i++) { boolean isSorted = true; for(int j = 0; j < nums.length - i - 1; j++){ if(nums[j] > nums[j + 1]) { swap