摘要: 这里介绍两种常见算法, Brute Force和KMP. 代码如下: 阅读全文
posted @ 2017-07-16 23:29 NoviScl 阅读(167) 评论(0) 推荐(0) 编辑
摘要: huffman编码中WPL等于没个结点到根结点的距离乘结点权值的总和,但我们也可以用另一种方法求WPL:如果huffman树只有一个结点,则WPL为根结点权值,否则WPL等于除了根结点以外的所有结点的权值之和。 我们可以用优先队列/堆实现这个过程: 阅读全文
posted @ 2017-07-16 12:03 NoviScl 阅读(356) 评论(0) 推荐(0) 编辑
摘要: 堆(heap)本质上是一棵完全二叉树。它分为大根堆和小根堆,对于大根堆,越接近顶部的结点权值越大,并且一个结点的权值一定大于等于它所在的子树的所有结点的权值。小根堆类似,结点的权值小于等于子树结点的权值。 用堆可以完成堆排序,过程类似于选择排序,每次将最大的元素移到最后位置然后再维护堆,复杂度为O( 阅读全文
posted @ 2017-07-16 10:17 NoviScl 阅读(151) 评论(0) 推荐(0) 编辑