Huffman算法相关
来源:百度文库 编辑:神马文学网 时间:2024/06/03 14:41:30
Huffman算法:
输入m+1个权值: W = {w0, w1, ... wm}
输出: Huffman 树
while( W中多于两个元素)
{
1)令x1, x2为最小的两个权值;
2)构造新的二叉树内部节点N,
其权值为w(N) = x1 + x2;
3)令N的左子为x1,右子为x2;
4)令W = W -{x1, x2} + {w(N)};
}
输出W. Huffman压缩算法:
输入:字符串s = s1s2...sm
输出: s 的 Huffman压缩编码;
1)统计s中每个字符的出现概率;
2)以字符的频率作为权值;构造Huffman树T;
3)根据T将s中的每个字符替换为其Huffman编码;
4)输出s; Huffman树的建立:
假设字符集:
S= {0, 1, ... , 255, 256}
其中256专门用来表示原文的结束:
struct Huffman_node
{
int freq_; //字符的出现频率;
int lc_; //节点的左子;
int rc_; //节点的右子;
};
Huffman_node huff[514]; //Huffman tree
huff[0..256]用于存放字符的出现频率,
也是Huffman的扩充节点(叶节点)
huff[257..512]存放Huffman树的内部节点;
huff[513]指明Huffman树的根节点;
输入m+1个权值: W = {w0, w1, ... wm}
输出: Huffman 树
while( W中多于两个元素)
{
1)令x1, x2为最小的两个权值;
2)构造新的二叉树内部节点N,
其权值为w(N) = x1 + x2;
3)令N的左子为x1,右子为x2;
4)令W = W -{x1, x2} + {w(N)};
}
输出W. Huffman压缩算法:
输入:字符串s = s1s2...sm
输出: s 的 Huffman压缩编码;
1)统计s中每个字符的出现概率;
2)以字符的频率作为权值;构造Huffman树T;
3)根据T将s中的每个字符替换为其Huffman编码;
4)输出s; Huffman树的建立:
假设字符集:
S= {0, 1, ... , 255, 256}
其中256专门用来表示原文的结束:
struct Huffman_node
{
int freq_; //字符的出现频率;
int lc_; //节点的左子;
int rc_; //节点的右子;
};
Huffman_node huff[514]; //Huffman tree
huff[0..256]用于存放字符的出现频率,
也是Huffman的扩充节点(叶节点)
huff[257..512]存放Huffman树的内部节点;
huff[513]指明Huffman树的根节点;
Huffman算法相关
【转】关联规则数据挖掘的算法相关_土拨呼
【转】关联规则数据挖掘的算法相关_土拨呼
搜索引擎研究---网络蜘蛛程序算法相关资料(asp/vb)[知识分享-知合网]
搜索引擎研究---网络蜘蛛程序算法相关资料(asp/vb)[知识分享-知合网]
现在,我们要检查一些可以补充算法复杂度的重要的容器相关问题,但首先我需要介绍一种STL容器的分类
现在,我们要检查一些可以补充算法复杂度的重要的容器相关问题,但首先我需要介绍一种STL容器的分类
贝叶斯算法
经典算法
遗传算法
KMP算法
遗传算法
竞价排名算法
五行算法
名字算法
遗传算法
KMP算法
快算法
称骨命重算法
保险算法
数学算法
算法讲解
四柱推算法
算法分析