Haffman 编码

来源:互联网 发布:windows软件性能测试 编辑:程序博客网 时间:2024/05/22 09:00
Haffman 编码 根据字符在文件中出现频率不同建立一个用0,1串表示字符的最优方式。
给出现频率高的字符用较短的编码,出现频率较低的字符用较长的编码,达到整体编码最少的目的。//   使用不同长度(位数)的编码来表示各字符的最优
构造Haffman树:
哈夫曼提出构造 最优前缀码 的 贪心算法,由此产生的编码方案称为哈夫曼编码:
若C是编码字符集,表示其最优前缀码的二叉树中恰有|C|个叶子
如 用 0 1 编码 ,有2个叶节点
先选两个最小的节点,合并,然后继续选择两个最小节点,合并,知道最后构成一棵树为止!

const string &shorterString(const string &s1,const string &s2)
{
return s1.size() < s2.size ? s1 :s2;
}


cout<< shortString(s1,s2)<<endl;
cout<<(s1.size <s2.size ? s1 : s2)<<endl;
0 0