アルゴリズムとデータ構造(8)ハフマン木/ハフマン符号化

ハフマン(ハフマン)木/ハフマンコーディング

ASCIIコード表は、特定の8つの文字に、そのような文字EおよびP、すなわち80,000総物品の100万個の単語、即ち、10000のバイトが、物品の文字Eが現れるの実際の周波数等の文字が他の文字よりもはるかに大きいです、文字eは4または5で設計することが可能であり、一般的に使用される文字の一部は、省スペース化を取得し、効率を向上させるために、10、11又は12であるように設計されていません。

加重パス長 WPL:バイナリツリーは、重み値がWK各ノード、LK、各リーフノードの加重経路長のノードへのルートの長さと、n個のリーフノードが設けられています。の合計
ここに画像を挿入説明

ハフマン:WPL最小のバイナリツリー

例:5子葉ノードは、自分の体重は、この構築物の異なるバイナリ重みで、{1,2,3,4,5}であり、
ここに画像を挿入説明
図の左端として、WPL計算例1。5 + 4。 2 + 3 3。 +1 4 * 4 + 2 = 34

ハフマン木の構築

  1. 重ソート
  2. 2つの左と右のサブツリーに組み合わさ最小、最小の残りのノードの重み。

ハフマン符号化

考察:本明細書で58文字、次のような構成によって定義される7つの文字、E、I、S有すると仮定する 、T、空白( スペース)、NL(改行)を、7これらの文字がエンコードされている場合、総コーディングよう最小スペース(情報はエンコードされていない場合は、BaiduのASCIIコード学習内容に関連してください)?
周波数:ここに画像を挿入説明
プログラム:

  1. ASCIIコードエンコーダ58 * 8 = 464。
  2. 等しい長さの符号化エンコード3 58 * 3 = 174と
  3. 長さは、可変長符号を用いずに符号化など、周波数が小さいビット、大きなビットと低い周波数です。

コーディングの問題に至るまで

ここに画像を挿入説明
バイナリコーディングを使用

  1. 0,1についての支店。
  2. 唯一のリーフノードの文字。
    0
  3. 周波数調整は、バイナリハフマン木に基づいて、図示のように、ここに画像を挿入説明
    この場合の最小コストのビット数、
    回帰自体タイトル:
    周波数は、次のここに画像を挿入説明
    図に示すような周波数の順序:
    ここに画像を挿入説明
    マージノード:
    ここに画像を挿入説明
    ここに画像を挿入説明
    外観から、その結果を設計します緯度空間の小さい、最大利用に話します
公開された17元の記事 ウォンの賞賛0 ビュー364

おすすめ

転載: blog.csdn.net/qq_32193775/article/details/104116036