谁会算法设计编程啊,急啊

 我来答
478617
2015-04-08 · TA获得超过875个赞
知道小有建树答主
回答量:725
采纳率:100%
帮助的人:83.7万
展开全部
编程思路

一、文件压缩:

①统计词频:读取文件的每个字节,使用整数数组统计每个字符出现的次数,

②构造哈夫曼树:根据数组,基于哈夫曼树算法造哈夫曼树,由于构造的过程中每次都要取最小权值的字符,所以需要用优先队列来维护每棵树的根节点。

③生成编码:深度优先遍历哈夫曼树,得到每个叶子节点中的字符的编码并存入字符串数组

④存储词频:新建存储压缩数据的文件,首先写入不同字符的个数,然后将每个字符及其对应的词频写入文件。

⑤存储压缩数据:再次读取待压缩文件的每个字节byte,得到对应的编码(注意每个字符编码的长度不一),使用位运算一次将编码中的每个位(BIT)设置到一个char类型的位缓冲中,可能多个编码才能填满一个位缓冲,每填满一次,将位缓冲区以单个字节的形式写入文件。当文件遍历完成的时候,文件的压缩也就完成了。

二、文件解压:

①读取词频:读取压缩文件,将每个字符的出现次数存入数组

②构造哈夫曼编码树:根据数组构造哈夫曼编码树

③继续读取压缩文件,对于每个字节,使用位运算得到每个位(BIT)。对于每个BIT,根据BIT从根开始遍历哈夫曼树,如果BIT是0就走左分支,如果BIT是1就走有分支,走到叶子节点的时候,输出对应的字符。走到叶子节点后,重新从哈夫曼树根节点开始匹配每个位。当整个压缩文件读取完毕时,文件解压缩也完成了。
算法中的难点就是哈夫曼树的构建和高效的实现位输入输出。
代码就没有功夫写了
追问
不会写代码😭
追答

哈夫曼压缩算法程序

海绵BOBday
2015-04-07 · 超过40用户采纳过TA的回答
知道答主
回答量:112
采纳率:0%
帮助的人:46.3万
展开全部
问题是?你想表达什么?
更多追问追答
追问

题目5
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
大于根号4
2015-04-07
知道答主
回答量:34
采纳率:0%
帮助的人:8万
展开全部
推荐一本书《零基础学算法》
追问
来不及了,实验课
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式