高效排序与图的度量维度研究
1. 高效排序算法
1.1 MergeInsertion 算法
MergeInsertion 是一种排序算法,其核心的合并步骤由以下伪代码表示:
procedure: merge(m: integer)
global: φ array of n integers imposed by weak-heap
for l ←0 to ⌊m/2⌋−1
φm−odd(m)−l−1 ←d-child(φl, m −odd(m));
k ←1; e ←2k; c ←f ←0;
while e < m
k ←k + 1; e ←2e;
l ←⌈m/2⌉+ f; f ←f + (tk −tk−1);
for i ←0 to (tk −tk−1) −1
c ←c + 1;
if c = ⌈m/2⌉then
return;
if tk > ⌈m/2⌉−1 then
binary-insert(i + 1 −odd(m), l, m −1);
else
binary-insert(⌊m/2⌋−f + i, e −1, ⌊m/2⌋+ f);
其中,$t_k = \frac{2^{k + 1} + (-1)^k}{3}$,$odd(m) = m \mod 2$,$d - child(\varphi_i, n)$ 返回弱堆中 $\varphi_i$ 的小于 $n$ 的最大孙节点索引。该算法在组织
超级会员免费看
订阅专栏 解锁全文
28

被折叠的 条评论
为什么被折叠?



