霍夫曼编码:霍夫曼编码定义为一种特殊的最佳前缀码,通常用于无损数据压缩。查找或实现此类代码的过程是通过霍夫曼编码进行的,该算法由 David A. Huffman 在麻省理工学院攻读 Sc.D. 期间开发,并发表在 1952 年的论文“一种构造最小冗余码的方法”中。霍夫曼算法的输出可以显示为一个变长代码表,用于编码源符号(例如文件中的字符)。该算法根据估计的概率或……从……创建此表 阅读更多
在虚拟树中,一些边被视为实线,一些被视为虚线。通常的伸展只在实线树中执行。为了在虚拟树中的节点 y 上进行伸展,实现了以下方法。该算法查看树三次,每次查看一次,并对其进行更改。在第一遍中,仅通过在实线树中进行伸展,从节点 y 开始,从 y 到整个树根的路径变为虚线。通过拼接创建此路径为实线。最后在节点 y 上进行伸展现在将创建 y 为树的根。…… 阅读更多
静态手指定理 - 令 f 被视为称为手指的特定元素。则以下表达式是伸展序列成本的界限 O(m + n log(n) + Σ Sum log (|f - i[j]| + 1))j 注意 - |f-i| 表示手指和项目 i 之间项目对称排序中的距离。其中 m 表示对最多具有 n 个节点的树的更新或访问操作的次数。观察到,至少在摊销意义上,在从不超过 n 的树上进行前 m 次操作所花费的时间…… 阅读更多
动态最优性猜想:除了伸展树的已证明性能保证外,还有一个未经证实的猜想引起了极大的兴趣。动态最优性猜想表示此猜想。令任何二叉搜索树算法(例如 B)通过遍历从根到 y 的路径来访问元素 y,成本为 d(y)+1,并且在访问之间可以在树中进行任何旋转,每次旋转的成本为 1。令 B(s) 为 B 执行访问序列 s 的成本。然后,伸展树执行相同访问的成本为 O[n+B(s)]。有…… 阅读更多
在跳表中,可以从包含元素 b 的节点开始,通过简单地从该点 a 继续搜索来进行元素 a 的手指搜索。请注意,如果 a < b,则搜索向后进行,如果 a > b,则搜索向前进行。向后的情况与跳表中的正常搜索是对称的,但向前的情况实际上更复杂。通常,跳表中的搜索预计会很快,因为列表开头的哨兵被认为是最高的节点。但是,我们的手指可能与…… 阅读更多