• 2019-03-27 哈夫曼树、哈夫曼编码的理解


    一、思想的应用

      1、文件压缩。

      2、数据通信。

      将数据进行有效编码。

    二、哈夫曼树

      将一组混乱的数组,排成哈夫曼树,可以分为以下几步:

      假设数组为arr ={}

      1、先将数组排序,从小到大。

      2、数组移除最小的两个数,作为叶子节点,根节点为两数之和,合成一个二叉树。

      3、将根节点加入数组,对数组重新排序。

      4、重复2、3步骤。直到数组只剩下最后一个数,结束。至此,一开始的数组排成一个哈夫曼树,

    三、哈夫曼编码

      1、我的理解:将一串数据,比如(hello world~~),根据不明约定(也就是哈夫曼编码方式)转换成一组二进制的数据,(如10101010101010011011011,我只是随便举例,前面那个并不是转换成这个)。

      2、过程:

      (1)、拟定一串数据为 hello world,i am coming.

      (2)、统计数据中每个字符出现的频次{'h':1,'e':1,'l':3,'o':3,'空格':3,'w':1,'r':1,'d':1,',(逗号)':1,'i':2,'a':1,'m':2,'c':1,'n':1,'g':1}

      (3)、将频次从小到大排列,构造成哈夫曼树结构。

      (4)、将树的每一条左分支标志为0,右分支标志位1。

      (5)、                           

      

    未完...

  • 相关阅读:
    C++
    复盘-2018.6.8~2020.6.8
    C++
    C++
    C++
    C++
    Python学习笔记(十)- 面向对象(一)
    SSHException: Error reading SSH protocol banner
    docker 安装mysql
    docker 安装部署
  • 原文地址:https://www.cnblogs.com/mathlin/p/10606089.html
Copyright © 2020-2023  润新知