问题一:
对同一个基本有序的待排序列分别进行堆排序、快速排序和冒泡排序,最省时间的算法是_____
分析:
冒泡排序 冒泡排序、快速排序、堆排序性能比较对照
排序方法 比较次数 移动次数 稳定 辅助空间
最好 最差 最好 最差 是 最好 最差
冒泡排序 n n^2 0 n^2 1 1
快速排序 nlogn n^2 logn n 否 logn n
堆排序 nlogn nlogn nlogn nlogn 否 1 1
而当待排序列已基本有序时对冒泡排序来说是最好情况。
问题二:
在最坏的情况下,下列排序方法中时间复杂度最小的是()
A.冒泡排序 B.快速排序 C.插入排序 D.堆排序
分析:
排序方法 最坏时间复杂度 最好时间复杂度 平均时间复杂度
直接插入 O(n2) O(n) O(n2)
简单选择 O(n2) O(n2) O(n2)
起泡排序 O(n2) O(n) O(n2)
快速排序 O(n2) O(nlog2n) O(nlog2n)
堆排序 O(nlog2n) O(nlog2n) O(nlog2n)
归并排序 O(nlog2n) O(nlog2n) O(nlog2n)
答案:D