使用Huffman方法對字元進行編碼

2021-06-18 00:08:47 字數 413 閱讀 2882

1.字元編碼有兩種方式:定長編碼和變長編碼。定長編碼如ascii碼,每乙個字元都是由固定長度的二進位制資料表示的。變長編碼時,字元是可以由不同長度的二進位制資料表示的。在變長編碼時,為了保證解碼時能有唯一的解碼結果,編碼必須為字首碼。(字首碼:任何乙個字元的編碼都不是其他字元編碼的字首)

2.huffman編碼思路:將要編碼的字元做為二叉樹的葉節點,根據其權重構造二叉樹,二叉樹根到葉節點的路徑代表詞葉節點字元的編碼。明顯huffman方法產生的編碼是字首碼,因為任何兩個由根到葉節點的路徑a,b是不可能存在a屬於b或b屬於a情況的 ( 由於a,b葉節點不同,所以葉節點到其父節點的路徑是肯定不會相同的 )。

3.huffman編碼思想:剛開始初始化n顆只有乙個節點的樹。不斷從存在的樹中選擇權值最小的兩顆構造成一顆新樹,同時取代最小的這兩顆,直到樹構造完成。

4.**:

android使用tinker對app進行熱修復

專案裡包含了lib的原始碼和sample,下下來,然後開啟tinker sample android 修改mainactivity中textview android id id textview android layout width wrap content android layout hei...

使用Fiddler對Android應用進行抓包

1.開啟fiddler軟體,效果圖如下 2.首先,確保安裝 fiddler 的電腦和你的手機在同一區域網內,因為fiddler只是乙個 需要將手機的 指向 pc 機,不能互相訪問是不行的。如果你的pc沒有無線網絡卡,看文章最後 3.開啟fiddler的遠端連線,fiddler 主選單 tools f...

使用TortoiseGit對Git版本進行分支操作

版本轉殖分支問題 tortoisegit在轉殖分支的時候,預設轉殖master分支,轉殖後本地工作目錄為中心器的master分支.轉殖後本地分支 中心庫分支 push分支到中心伺服器 pushing the local branch to a new remote branch git在本地建立分支...