简答题

如果修改归并排序算法,将数组分成1/3和2/3大小不等的两部分,分别排序后再归并,算法的最坏时间复杂度有什么变化?

正确答案

设对n个元素排序的时间为T(n),对两部分排序的时间分别为T(n/3)和,合并的时间为n-1,得到递归方程:

答案解析

相似试题
  • 简述归并排序算法和快速排序算法的分治方法。

    简答题查看答案

  • 序列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)空使程序完整。 经典算法提示: 折半查找法的思路是先确定待查元素的范围,将其分成两半,然后比较位于中间点元素的值。如果该待查元素的值大于中间点元素的值,则将范围重新定义为大于中间点元素的范围,反之亦反。

    填空题查看答案