哈夫曼编码平均码长怎么计算例题_哈夫曼编码平均码长的计算公式

哈夫曼编码平均码长怎么计算例题_哈夫曼编码平均码长的计算公式BUPT复试专题—哈夫曼编码(2009)#include<iostream>#include<cstdio>#include<algorithm>#include<cstring> #include<queu

BUPT复试专题—哈夫曼编码(2009)   #include<iostream> #include<cstdio> #include<algorithm> #include<cstring> #include<queue> using namespace std; int a[30]; char s[1005]; struct node { int w; friend bool operator <(node aa, node bb) //<为从大到小排列,>为从小到大排列 { return aa.w > bb.w; } }; int main() { int n; while(scanf(“%d”,&n)!=EOF) { memset(a, 0, sizeof(a)); int num=0,len=n; for(int i=1;i<=n;i++) //题目已知每一种字母有多少个,没已知要自己数 cin>>a[i]; priority_queue <node> q; for(int i=1;i<27;i++) { num+=a[i]; node b; b.w=a[i]; if(a[i]) q.push(b); } int res; if(q.size() == 1) res = len; else { res = 0; while(q.size() > 1) { int aa = q.top().w; q.pop(); int bb = q.top().w; q.pop(); res += (aa + bb); node b; b.w = aa + bb; q.push(b); } } double temp=double(res)/(double)num; printf(“%.2lf   ”,temp); } return 0; }

2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/32801.html

(0)
上一篇 2024年 9月 11日 上午7:10
下一篇 2024年 9月 11日 上午7:14

相关推荐

关注微信