排序算法复杂度比较

算法 时间复杂度 空间复杂度
快速排序 最优O(nlgn) 最差O(n²) O(1)
堆排序 O(nlgn) O(1)
归并排序 O(nlgn) O(n)用来将两个排好序的数组合并
选择排序 O(n²) 每次都要遍历一遍没有最优 O(1)
插入排序 最优 O(n) 数组已经排序
最差 O(n²) 逆序排序
O(1)
冒泡排序 最优 O(n) 数组已经排序
最差 O(n²) 逆序排序
O(1)

快排虽然最差是O(n²),但平均仍是O(nlgn) 其中堆排序,快速排序,选择排序是不稳定的算法,相等元素的相对位置会发生改变。 选择排序,举个例子,序列5 8 5 2 9, 咱们知道第一遍选择第1个元素5会和2交换,那么原序列中2个5的相对先后顺序就被破坏了算法

快速排序,好比序列为 5 3 3 4 3 8 9 10 11, 如今中枢元素5和3(第5个元素,下标从1开始计)交换就会把元素3的稳定性打乱数组

相关文章
相关标签/搜索