第九周第三天9.3
所用时间:90分钟
代码量(行):115
了解到的知识点:
1.“基本有序”情况下的排序算法
一、“基本有序” 时表现最好的排序算法
- 插入排序逻辑:每次将元素插入到已排序序列的合适位置。优势:基本有序时,每个元素只需少量移动,时间复杂度接近(O(n),空间复杂(O(1),是这类场景的最优选择之一。
- 冒泡排序逻辑:相邻元素两两比较,逆序则交换。优势:基本有序时,只需少量轮次即可完成排序,时间复杂度接近O(n)(若提前检测到无交换则终止,效率更高)。
二、“基本有序” 时表现最坏的排序算法 - 快速排序逻辑:基于 “分治”,选基准元素划分序列。劣势:基本有序时,基准元素会将序列划分为 “极不均衡” 的两部分(如基准是最小值或最大值),导致递归深度达到n,时间复杂度退化为O(n^2),空间复杂度也退化为O(n)。
- 希尔排序(当增量序列选择不佳时)逻辑:分组插入排序,依赖增量序列设计。劣势:若增量序列选择不当(如增量过大或递减过慢),基本有序的优势无法体现,时间复杂度可能接近O(n^2)。
三、其他排序的表现
选择排序:时间复杂度始终为O(n^2),“基本有序” 对其无优化作用。
归并排序:时间复杂度稳定为O(nlg n),“基本有序” 不会提升或降低其效率。
堆排序:时间复杂度稳定为O(nlg n),“基本有序” 对其无明显影响。

浙公网安备 33010602011771号