题目内容
(请给出正确答案)
[主观题]
如果在合并排序算法的分割步骤中,将数组a[0:n-1]划分为[ ]个子数组,每个子数组中有O()个元素
如果在合并排序算法的分割步骤中,将数组a[0:n-1]划分为[ ]个子数组,每个子数组中有O()个元素,然后递归地对分割后的子数组进行排序,最后将所得到的[ ]个排好序的子数组合并成所要求的排好序的数组a[0;n-1].设计一个实现上述策略的合并排序算法,并分析算法的计算复杂性.
答案
查看答案
如果在合并排序算法的分割步骤中,将数组a[0:n-1]划分为[ ]个子数组,每个子数组中有O()个元素,然后递归地对分割后的子数组进行排序,最后将所得到的[ ]个排好序的子数组合并成所要求的排好序的数组a[0;n-1].设计一个实现上述策略的合并排序算法,并分析算法的计算复杂性.
第5题
A.三数取中这一步骤会增加计算时间,所以总的时间也会增加
B.三数取中策略的使用,使得两个数组均衡,从而总的时间从概率是来讲会减少
C.通过三数取中,总能得到整个数组的中心
D.三数取中可以增加合并过程的效率
第6题
第9题
第10题
下面是一个快速排序的逆归算法。为了避免最坏情况,取基准记录pivot采用从lelt,right和中取中间值,并交换到low位置的办法。数组A存放待排序的一组记录,数据类型为T,left和right是待排序子区间的最左端点和最右端点。
(1)实现三者取中子程序mediancy(A,left,right);
(2)改写QuickSort算法,不用栈消去第二个递归调用QuickSort(A,pivotPos+1,right);
(3)继续改写QuickSort算法,用栈消去剩下的递归调用。