//稳定性:在原序列中,r[i]=r[j] && r[i]在r[j]之前; 而在排完序之后,r[i]仍然在r[j]之前,则称这样的排序算法是稳定的。否则是不稳定的。
//
// 时间最坏 时间最好 空间 稳定性
// 直接插入排序 O(N^2) O(N) O(1) √
// 插入排序 希尔排序 平均:O(N^1.3) / O(N*logN) O(1) × (预排的时候,相同的数据可能会被分到不同组里去)
//
//
//常见算法排序 选择排序 直接选择排序 O(N^2) O(N^2) O(1) × (升序:选小的数放在左边){4 4 5 1 8 3}
// 堆排序 O(N*logN) O(N*logN) O(1) × (建好大堆之后:9 7 6 7 7; 交换首尾的数据之后,顺序被打乱)
//
//
// 交换排序 冒泡排序 O(N^2) O(N) O(1) √
// 快速排序 O(N^2) O(N*logN) O(logN) × (反例:5 3 5 7 9 5 5 2 9) 【选择5作为key时】
//
//
// 归并排序 并归排序 O(N*logN) O(N*logN) O(N) √
//
常见排序的复杂度与稳定性
最新推荐文章于 2025-12-05 23:32:53 发布
925

被折叠的 条评论
为什么被折叠?



