霍夫曼編碼將頻繁出現(xiàn)的字符采用短編碼,出現(xiàn)頻率較低的字符采用長編碼。具體的操作過程為:i)以每個字符的出現(xiàn)頻率作為關(guān)鍵字構(gòu)建最小優(yōu)先級隊列;ii)取出關(guān)鍵字最小的兩個結(jié)點生成子樹,根節(jié)點的關(guān)鍵字為孩子節(jié)點關(guān)鍵字之和,并將根節(jié)點插入到最小優(yōu)先級隊列中,直至得到一棵最優(yōu)編碼樹。
霍夫曼編碼方案是基于(1)策略的。用該方案對包含a到f6個字符的文件進(jìn)行編碼,文件包含100000個字符,每個字符的出現(xiàn)頻率(用百分比表示)如表1-3所示,則與固定長度編碼相比,該編碼方案節(jié)省了(2)存儲空間。
表1-3 某文件中每個字符出現(xiàn)的頻率
| ||||||
字符 | a | b | c | d | e | f |
出現(xiàn)頻率(%) | 18 | 32 | 4 | 8 | 12 | 26 |
(1)A.分治
B.貪心
C.動態(tài)規(guī)劃
D.回溯
(2)A.21%
B.27%
C.18%
D.36%