题目内容
(请给出正确答案)
[主观题]
在实现快速排序的非递归算法时,可根据基准元素.将待排序排序码序列划分为两个子序列。若下一趟
首先对较短的子序列进行排序,试编写相应的算法,并说明在此做法下,快速排序所需要的栈的深度为O(log2n),
查看答案
如果结果不匹配,请 联系老师 获取答案
已知Ackerman函数定义如下:
(1)根据定义,写出它的递归求解算法;
(2)利用栈,写出它的非递归求解算法。
A.非终结符排序不同,消除左递归的结果可能不同
B.不能改变文法的开始符号
C.消除左递归后的结果形式上可能不同,但它们是等价的
D.以上都对
A.10,15,14,18,20,36,40,21
B.10,15,14,18,20,40,36,21
C.10,15,14,20,18,40,36,21
D.15,10,14,18,20,36,40,21
a)试按照以上思路,实现一个排序算法:
b)你的这一算法,时间和空间复杂度各是多少?
c)改进你的算法,使之能够在O(n+M)时间内对来自[0,M)范围内的n个整数进行排序,且使用的辅助空间不超过O(M)。