设对n个元素排序的时间为T(n),对两部分排序的时间分别为T(n/3)和,合并的时间为n-1,得到递归方程:
(简答题)
如果修改归并排序算法,将数组分成1/3和2/3大小不等的两部分,分别排序后再归并,算法的最坏时间复杂度有什么变化?
正确答案
答案解析
略
相似试题
(简答题)
简述归并排序算法和快速排序算法的分治方法。
(填空题)
序列4 ,2 ,5 ,3 ,8 ,6 ,7,9,采用归并排序算法(升序),经一趟归并后,序列的结果()。
(简答题)
编一个程序,定义一个字符串数组,输入若干国家名称(所有名称全用大写或者全用小写),设计一个算法按字典顺序将这些国家名称进行排序。
(判断题)
除插入和删除操作外,数组的主要操作还有存取、修改、检索和排序等。
(简答题)
对于记录序列A[1]~A[n]可按如下如下方法实现奇偶交换排序:第一趟对所有的奇数i,将A[i]和A[i+1]进行比较,第二趟对所有的偶数i,将A[i]和A[i+1]进行比较,每次比较时若A[i]>A[i+1],则将二者交换,然后重复上述排序过程,直至整个数组有序。编写算法实现上述奇偶交换排序。
(单选题)
如果将所有中国人按照生日来排序,则使用()算法最快。
(填空题)
对用数组存储的线性表(16,15,32,11,6,30),用快速排序算法进行由小到大排序,若排序下标范围为0~5,选择元素16作为支点,调用一趟快速排序算法后,元素16在数组中的下标位置为()
(简答题)
完成从一维数组A[n]上进行快速排序的递归算法。
(填空题)
下面函数用“折半查找法”从有10个数的a数组中对关键字m查找,若找到,返回其下标值,否则返回-1,请填(2)空使程序完整。 经典算法提示: 折半查找法的思路是先确定待查元素的范围,将其分成两半,然后比较位于中间点元素的值。如果该待查元素的值大于中间点元素的值,则将范围重新定义为大于中间点元素的范围,反之亦反。