1、假设线性表的长度为n,则在最坏情况下,冒泡排序需要的比较次数为多少次?
n(n-1)/2
2、对n个元素的数组进行(堆排序),其平均时间复杂度和最坏情况下的时间复杂度都是O(nlogn)
排序方法中,最好情况和最坏情况都一样的是选择排序和堆排序,不管初始序列是否有序
选择排序时间复杂度是O(N2)
堆排序时间复杂度是O(NlogN)
3、基于比较方法的n个数据的内部排序。最坏情况下的时间复杂度能达到的最好下界是()
正确答案: A
O(nlogn)
O(logn)
O(n)
O(nn)
解析:最坏情况下只有归并排序和堆排序的复杂度是O(nlogn)其余的都是O(nn).
4、下列哪个算法是对一个list排序的最快方法?
正确答案: A
快速排序
5、对 n 个记录的文件进行快速排序,所需要的辅助存储空间大致为:
O(1og2n)
6、假设小明用某个排序算法对整数序列(82,45,25,15,21)进行排序。一下为排序过程中序列状态的变化过程:
输入:82 45 25 15 21
第一步:45 82 25 15 21
第二步:25 45 82 15 21
第三步:15 25 45 82 21
······
请问小明用的是什么排序算法?
插入排序
分两部分:有序和无序,然后 将无序部分,一个数字一个个排序。
7、对于排序算法,经常关注的是其时间复杂度和稳定性。下列排序算法中平均时间复杂度是O(NLOGN)且稳定的是?
归并排序
快速排序和堆排序时间复杂度可以达到nlog(n),归并排序的平均时间复杂度也为nlog(n)
快速排序 希尔排序 选择排序 堆排序 是不稳定的排序。其余都为稳定的排序。
8、现有N条词以及对应的拼音串,对其排序,排序规则:首先按拼音串的字母序排序,如果拼音串相同,则按当前词所在的顺序排序,下列哪些排序算法符合条件?( 插入排序和冒泡排序 )
插入排序
快速排序
堆排序
冒泡排序
按当前词所在顺序排序即排序算法要稳定。
选择排序,快速排序,希尔排序,堆排序 都不稳定
冒泡排序,插入排序,归并排序,基数排序 都稳定