<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hant-TW">
	<id>https://wiki.taigi.ima.org.tw/w/index.php?action=history&amp;feed=atom&amp;title=Burrows-Wheeler%E8%AE%8A%E6%8F%9B</id>
	<title>Burrows-Wheeler變換 - 修訂紀錄</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.taigi.ima.org.tw/w/index.php?action=history&amp;feed=atom&amp;title=Burrows-Wheeler%E8%AE%8A%E6%8F%9B"/>
	<link rel="alternate" type="text/html" href="https://wiki.taigi.ima.org.tw/w/index.php?title=Burrows-Wheeler%E8%AE%8A%E6%8F%9B&amp;action=history"/>
	<updated>2026-05-24T03:17:35Z</updated>
	<subtitle>本 wiki 上此頁面的修訂紀錄</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://wiki.taigi.ima.org.tw/w/index.php?title=Burrows-Wheeler%E8%AE%8A%E6%8F%9B&amp;diff=457120&amp;oldid=prev</id>
		<title>TaiwanTonguesApiRobot：​從 JSON 檔案批量匯入</title>
		<link rel="alternate" type="text/html" href="https://wiki.taigi.ima.org.tw/w/index.php?title=Burrows-Wheeler%E8%AE%8A%E6%8F%9B&amp;diff=457120&amp;oldid=prev"/>
		<updated>2025-08-23T03:46:48Z</updated>

		<summary type="html">&lt;p&gt;從 JSON 檔案批量匯入&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新頁面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Burrows–Wheeler Transform&amp;#039;&amp;#039;&amp;#039;（簡稱 BWT，嘛叫做&amp;#039;&amp;#039;&amp;#039;塊排序壓縮&amp;#039;&amp;#039;&amp;#039;）， 是一个予人應用佇數據壓縮技術（如 bzip 二）中的算法。該當是一九九四年被 Michael Burrows 和 David Wheeler 佇咧加利福尼亞州帕洛阿爾托的 DEC 系統研究中心發明。伊的基礎是進前 Wheeler 佇一九八三年發明的一種無公開的轉換方法。&lt;br /&gt;
&lt;br /&gt;
做一个字符串用該算法轉換的時陣，算法干焦改變這字符合串中字符仔的順序並無改變其字符仔。若這原字符捾有幾若改出現濟改，遐爾轉換過的字符串頂懸就會有一寡連紲重複的字符，這對壓縮是足有路用的。這个方法會當予因為處理字符合連紲重複字符的技術（如 MTF 變換佮遊程編碼）的編碼閣較容易予人壓縮著。&lt;br /&gt;
&lt;br /&gt;
比一个例：&lt;br /&gt;
&lt;br /&gt;
該算法的輸出因為有閣較濟的重複字符仔閣較會去予人壓縮去。&lt;br /&gt;
&lt;br /&gt;
==Burrows–Wheeler 變換過程==&lt;br /&gt;
&lt;br /&gt;
算法將輸入字符串的所有循環字符串按照字典序排序，並以排序後字符串形成的矩陣的最後一列為其輸出。&lt;br /&gt;
&lt;br /&gt;
==Burrows–Wheeler 換的閣原過程==&lt;br /&gt;
&lt;br /&gt;
* 是因為上述的 BWT 變換過程，以字符符合「banana」做例，咱得著矣變換結果「annb $ aa」。 其他的過程見以下過程：&lt;br /&gt;
一 . 是因為原字符串矩陣的上尾仔一列做「annb $ aa」，咱進行該列進行排序，得著「$ aaabnn」, 嘛共其做為還原矩陣的第一列一列 . 二經過一刀一的轉移、排序佮組合，咱得著七對鄰接字符串：&amp;lt; a $ &amp;gt; &amp;lt; na &amp;gt; &amp;lt; na &amp;gt; &amp;lt; ba &amp;gt; &amp;lt; $ b &amp;gt; &amp;lt; an &amp;gt; &amp;lt; an &amp;gt;，共這七對鄰接字符合來做排序了後，得著 &amp;lt; $ b &amp;gt; &amp;lt; a $ &amp;gt; &amp;lt; an &amp;gt; &amp;lt; an &amp;gt; &amp;lt; ba &amp;gt; &amp;lt; na &amp;gt; &amp;lt; na &amp;gt;，由此，咱得著矣還原矩陣的第二列「b $ nnaaa」&lt;br /&gt;
一 . 三經過一鋪二的轉移、排序佮組合，咱得著七對鄰接字符串：&amp;lt; a $ b &amp;gt; &amp;lt; na $ &amp;gt; &amp;lt; nan &amp;gt; &amp;lt; ban &amp;gt; &amp;lt; $ ba &amp;gt; &amp;lt; ana &amp;gt; &amp;lt; ana &amp;gt;，共這七對鄰接字符合來做排序了後，得著 &amp;lt; $ ba &amp;gt; &amp;lt; a $ b &amp;gt; &amp;lt; ana &amp;gt; &amp;lt; ana &amp;gt; &amp;lt; ban &amp;gt; &amp;lt; na $ &amp;gt; &amp;lt; nan &amp;gt;，由此，咱得著矣還原矩陣的第三列「abaan $ n」&lt;br /&gt;
一 . 四經過一鼻三的轉移、排序佮組合，咱得著七對鄰接字符串：&amp;lt; a $ ba &amp;gt; &amp;lt; na $ b &amp;gt; &amp;lt; nana &amp;gt; &amp;lt; bana &amp;gt; &amp;lt; $ ban &amp;gt; &amp;lt; ana $ &amp;gt; &amp;lt; anan &amp;gt;，共這七對鄰接字符合來做排序了後，得著 &amp;lt; $ ban &amp;gt; &amp;lt; a $ ba &amp;gt; &amp;lt; ana $ &amp;gt; &amp;lt; anan &amp;gt; &amp;lt; bana &amp;gt; &amp;lt; na $ b &amp;gt; &amp;lt; nana &amp;gt;，由此，咱得著矣還原矩陣的第四列「na $ naba」&lt;br /&gt;
一 . 五經過一爿四的轉移、排序佮組合，咱得著七對鄰接字符串：&amp;lt; a $ ban &amp;gt; &amp;lt; na $ ba &amp;gt; &amp;lt; nana $ &amp;gt; &amp;lt; banan &amp;gt; &amp;lt; $ bana &amp;gt; &amp;lt; ana $ b &amp;gt; &amp;lt; anana &amp;gt;，共這七對鄰接字符合來做排序了後，得著 &amp;lt; $ bana &amp;gt; &amp;lt; a $ ban &amp;gt; &amp;lt; ana $ b &amp;gt; &amp;lt; anana &amp;gt; &amp;lt; banan &amp;gt; &amp;lt; na $ ba &amp;gt; &amp;lt; nana $ &amp;gt;，由此，咱得著矣還原矩陣的第五列「anbana $」&lt;br /&gt;
一 . 六經過一刀五的轉移、排序佮組合，咱得著七對鄰接字符串：&amp;lt; a $ bana &amp;gt; &amp;lt; na $ ban &amp;gt; &amp;lt; nana $ b &amp;gt; &amp;lt; banaan &amp;gt; &amp;lt; $ banan &amp;gt; &amp;lt; ana $ ba &amp;gt; &amp;lt; anana $ &amp;gt;，共這七對鄰接字符合來做排序了後，得著 &amp;lt; $ banan &amp;gt; &amp;lt; a $ bana &amp;gt; &amp;lt; ana $ ba &amp;gt; &amp;lt; anana $ &amp;gt; &amp;lt; banana &amp;gt; &amp;lt; na $ ban &amp;gt; &amp;lt; nana $ b &amp;gt;，由此，咱得著矣還原矩陣的第六列「naa $ anb」。&lt;br /&gt;
&lt;br /&gt;
經過六改排序轉移佮組合，閣原出了原有的字符串即「$ banana」。&lt;br /&gt;
&lt;br /&gt;
==python 實現 ( 是因為 next 值方式 )==&lt;br /&gt;
&lt;br /&gt;
==python 實現 ( 基於尾添加唯一字符方式 )==&lt;br /&gt;
&lt;br /&gt;
通過佇尾溜咧添加唯一字符 ( 無和輸入字串中任何字符相仝 ) 了後才閣進行變換，會當無需要傳遞索引值列表，毋過顛倒變換的時陣愛做閣較濟計算。&lt;br /&gt;
&lt;br /&gt;
下跤的偽代碼提供一个逆過程的素實現（輸入字符串 s 為原過程之輸出）：&lt;br /&gt;
&lt;br /&gt;
` ` `&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;function&amp;#039;&amp;#039;&amp;#039;inverseBWT ( _ string _ s )&lt;br /&gt;
生成 length（s）個空串&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;repeat&amp;#039;&amp;#039;&amp;#039;length ( s )&amp;#039;&amp;#039;&amp;#039;times&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
鋪字符串 s 做吐一列插入每一字符串的串頭歕所有的字符合排序倒轉去塗尾溜 EOF 的行&lt;br /&gt;
` ` `&lt;br /&gt;
&lt;br /&gt;
==參考資料==&lt;br /&gt;
&lt;br /&gt;
==外部連結==&lt;br /&gt;
&lt;br /&gt;
* Compression comparison of BWT based file compressors&lt;br /&gt;
* Article by Mark Nelson on the BWT&lt;br /&gt;
* A Bijective String-Sorting Transform , by Gil and Scott&lt;br /&gt;
* Yuta&amp;#039;s openbwt-v 一垺五 . zip contains source code for various BWT routines including BWTS for bijective version&lt;br /&gt;
* On Bijective Variants of the Burrows–Wheeler Transform , by Kufleitner&lt;br /&gt;
* Blog post and project page for an open-source compression program and library based on the Burrows–Wheeler algorithm&lt;br /&gt;
* MIT open courseware lecture on BWT ( Foundations of Computational and Systems Biology )&lt;br /&gt;
&lt;br /&gt;
[[分類: 待校正]]&lt;/div&gt;</summary>
		<author><name>TaiwanTonguesApiRobot</name></author>
	</entry>
</feed>