C# Huffman编译码细节

最近用C#写huffman编译码程序的时候发现了一些问题,这里整理一下(新手勿喷):  [文件为非中文文件]

 1.文件中出现的各个字符的出现频率的取得。其实现方法如下:

     1.1很容易想到一种一个个(Streamreader.read)读入或者一行行(Streamreader.readLine)读入或者整个文本读入(Streamreader.readToEnd),再进行匹配。可以预见,这个方法非常慢,对于几百kb的txt或者几Mb的txt会很慢。

     1.2这里看到一种方法是读入后,进行整个文本的查找,替换成空,前后的字符串长度的变化即为这个字符出现的频次。

c2 = str.Length - str.Replace("A", String.Empty).Length;

    1.3 根据1.2,想到另外一种方法。即要查找的字符作为分隔符,将原字符串分隔为多个子串,然后求子串的数目即可

c3 = str.Split(new char[] { 'A' }).Length - 1;
   统计整个文本的字符时应注
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值