设使用Pratt序列:
对长度为n的任一向量S做希尔排序。
试证明:
a)若S已是(2,3)-有序,则只需o(n)时间即可使之完全有序;
b)对任何,若S已是(2hk,3hk)-有序,则只需o(n)时间即可使之hk-有序;
c)针对序列中的前o(logtn)项,希尔排序算法需要分别迭代一轮;
d)总体的时间复杂度为o(log2n)。
若假定机器字长无限,移位操作只需单位时间,递归不会溢出,且rand()为理想的随机数发生器。试分析以下函数F(n),并以大o记号的形式确定其渐进复杂度的紧上界。
在多叉堆(d-heap)中,每个节点至多可拥有d≥3个孩子,且其优先级不低于任一孩子。
a)试证明,多叉堆decrease()接口的效率可改进至O(logdn);(当然,delMax()接口的效率因此会降至O(d-logn))。
b)试证明,若取d=e/n+2,则基于d叉堆实现的Prim算法的时间复杂度可降至O(e·logdn);
c)这种改进策略是否也适用于Dijkstra算法?