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