题目内容
(请给出正确答案)
[主观题]
为了保证快速排序在最坏情况也有较髙的排序效率,可选待排序序列的第一个元素、最后一个元素和
位置位于最中间的一个元奈,在三者之中选择一个其值居中的元素,将其交换到待排序序列的第一个元素位置,再做一趟划分,若设整数数组A有n个元素,设计一个函数,实现上述三者取中并交换到待排序序列第一个元素位置的功能。
查看答案
如果结果不匹配,请 联系老师 获取答案
下面是一个快速排序的逆归算法。为了避免最坏情况,取基准记录pivot采用从lelt,right和中取中间值,并交换到low位置的办法。数组A存放待排序的一组记录,数据类型为T,left和right是待排序子区间的最左端点和最右端点。
(1)实现三者取中子程序mediancy(A,left,right);
(2)改写QuickSort算法,不用栈消去第二个递归调用QuickSort(A,pivotPos+1,right);
(3)继续改写QuickSort算法,用栈消去剩下的递归调用。
快速排序在最坏情况下昀时间复杂度是______。
A.O(log2n)
B.O(nlog2n)
C.O(n2)
D.O(n3)
A、先排小子区间
B、先排大子区间
C、划分基准为三者取中
D、采用链表排序
在下列排序算法中,平均情况下空间复杂度为O(n)的是();最坏情况下空间复杂度为O(n)的是()。I,希尔排序II,堆排序III,冒泡排序Ⅳ,归并排序V,快速排序Ⅵ,基数排序
A.I、Ⅳ、VI
B.II、V
C.Ⅳ、V
D.Ⅳ