若将任一有序序列等效地视作有序向量,则其中每个元素的秩,应恰好就等于序列中不大于该元素的元
a)试按照以上思路,实现一个排序算法:
b)你的这一算法,时间和空间复杂度各是多少?
c)改进你的算法,使之能够在O(n+M)时间内对来自[0,M)范围内的n个整数进行排序,且使用的辅助空间不超过O(M)。
a)试按照以上思路,实现一个排序算法:
b)你的这一算法,时间和空间复杂度各是多少?
c)改进你的算法,使之能够在O(n+M)时间内对来自[0,M)范围内的n个整数进行排序,且使用的辅助空间不超过O(M)。
第1题
设使用Pratt序列:
对长度为n的任一向量S做希尔排序。
试证明:
a)若S已是(2,3)-有序,则只需o(n)时间即可使之完全有序;
b)对任何,若S已是(2hk,3hk)-有序,则只需o(n)时间即可使之hk-有序;
c)针对序列中的前o(logtn)项,希尔排序算法需要分别迭代一轮;
d)总体的时间复杂度为o(log2n)。
第2题
第4题
设一组初始记录关键字的长度为8,则最多经过()趟插入排序可以得到有序序列。
A.6
B.7
C.8
D.9
第7题
第8题
个(②)为0的顶点且输出,然后从图中册除此顶点及(③)。反复执行,直至所有结点都输出为止。
第9题
比如,在仅能使用直尺的情况下,可通过反复实验,用鸡蛋刚能摔碎的下落高度(比如精确到毫米)来度量蛋壳的硬度。尽管可以假定在破裂之前蛋壳的硬度保持不变,但毕竟破裂是不可逆的。故若仅有一枚鸡蛋,则我们不得不从0开始,以1毫米为单位逐步增加下落的高度,若蛋壳的硬度不超过n毫米,则需要进行o(n)次实验。就效率而言,这等价于退化到无序向量的顺序查找。
a)若你拥有两枚鸡蛋(假定它们硬度完全相同),所需实验可减少到多少次?试给出对应的算法;
b)进一步地,如果你拥有三枚鸡蛋呢?
c)一般地,如果共有d枚鸡蛋可用呢?