编辑“︁
LZW
”︁(章节)
跳转到导航
跳转到搜索
警告:
您没有登录。如果您进行任何编辑,您的IP地址会公开展示。如果您
登录
或
创建账号
,您的编辑会以您的用户名署名,此外还有其他益处。
反垃圾检查。
不要
加入这个!
== 概念 == === 演算法 === 編碼和解碼的演算法分別如下: ==== 編碼 ==== # 先將資料的個別單一字元建立成一個字串編碼表(CSET),再分別給予編號。與此同時設 '''S''' 為輸入字串的第一個字元。 # 設 '''C''' 為在字串的下一個字元,並且將字串 '''C''' 連接到 '''S''' 的後面。設 '''W''' 為這個新的字串。 # 確認 '''W''' 有沒有在字串編碼表內,針對存在與否可以有以下兩種反應: ## 假如字串編碼表內存在字串 '''W''' ,則將 '''S''' 設成 '''W''' 。 ## 假如字串編碼表內不存在字串 '''W''' ,則我們將 '''S''' 所對應到的編碼加到輸出編碼序列的最末端,接著將 '''W''' 新增到字串編碼表裡,最後再將 '''S''' 設成 '''C''' 。 # 重複步驟 2~3 直到輸入字串裡所有的字元都已經編碼完成。 # 最後將字串 S 所對應到的編碼加到輸出編碼序列的最末端,即完成整個編碼程序。 ==== 解碼 ==== # 先將資料的個別單一字元建立成一個字串編碼表(CSET),再分別給予編號。與此同時設 '''S''' 為一空字串。 # 從編碼序列的第一個編碼開始,設定當前的編碼所對應字元(串)為 '''W''' ,並且將該字元(串)加到輸出字串的最末端。 # 假如目前字串 '''S''' 並非空字串,則我們將字串 '''W''' 的第一個字元連接到字串 '''S''' 的後面,並且將這個新字串新增到字串編碼表裡。 # 將 '''S''' 設成 '''W''' ,然後複步驟 2~3 直到輸入編碼序列裡所有的編碼都已經復原完成。 === 範例 === ==== 編碼 ==== 設原始資料為aabcaac,我們先將資料的個別單一字元先建立成一個字串編碼表(CSET),再分別給予編號如下: {| class="wikitable" |- ! 字串 !! 編碼 |- | a || 1 |- | b || 2 |- | c || 3 |} 依照上面所示的編碼過程,字串編碼表會隨著字串鍵入而逐漸擴大而擴展成如下列表: {| class="wikitable" |- ! 字串 !! 編碼 |- | a || 1 |- | b || 2 |- | c || 3 |- | aa || 4 |- | ab || 5 |- | bc || 6 |- | ca || 7 |- | aac || 8 |} 則原始字串 aabcaac 經過編碼壓縮後就是編碼序列112343。 ==== 解碼 ==== 解碼的首要步驟亦為將資料的個別單一字元先建立成一個字串編碼表(CSET),並將對應的字元放於一個暫存佇列中。依序將編碼壓縮資料讀入,若為該編碼存在於字串編碼表中就將對應字元(串)保存於輸出佇列中,若不存在則擴充一個新的碼置於字串編碼表中。例如壓縮資料112343,其字串編碼表為: {| class="wikitable" |- ! 字串 !! 編碼 |- | a || 1 |- | b || 2 |- | c || 3 |} 步驟1:讀取「1」,查字串編碼表為「a」,則: 佇列Q: {| class="wikitable" |- | a || — || — |} 輸出: {| class="wikitable" |- | a |} 步驟2:接著,再讀取下一筆資料「1」,查字串編碼表為「a」,則: 佇列Q: {| class="wikitable" |- | a || a || — |} 輸出: {| class="wikitable" |- | aa |} 因為aa在字串編碼表內沒有,因此擴充字串編碼表為: {| class="wikitable" |- ! 字串 !! 編碼 |- | a || 1 |- | b || 2 |- | c || 3 |- | aa || 4 |} 步驟3:此時將佇列Q(1)丟棄,將Q(2)移至Q(1)位置,讀取下一個資料「2」,則: 佇列Q: {| class="wikitable" |- | a || b || — |} 輸出: {| class="wikitable" |- | aab |} 依上述步驟重複運作,最後可將壓縮資料112343還原成原始資料aabcaac。
摘要:
请注意,所有对Local Chinese Wikipedia的贡献均可能会被其他贡献者编辑、修改或删除。如果您不希望您的文字作品被随意编辑,请不要在此提交。
您同时也向我们承诺,您提交的内容为您自己所创作,或是复制自公共领域或类似自由来源(详情请见
Project:著作权
)。
未经许可,请勿提交受著作权保护的作品!
取消
编辑帮助
(在新窗口中打开)
导航菜单
个人工具
未登录
讨论
贡献
创建账号
登录
命名空间
页面
讨论
大陆简体
不转换
简体
繁體
大陆简体
香港繁體
澳門繁體
大马简体
新加坡简体
臺灣正體
查看
阅读
编辑
查看历史
更多
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
工具
链入页面
相关更改
特殊页面
页面信息