PDF
1Burrows-Wheeler(BurrowsWheeler Transform)Contents ............................................................................................... 1 ............................................................................................... 3banana 2annb$aa 3a$,na,na,ba,$b, an, an 4EOL = '$'def encode(source): source = source + EOL table = [source[i:] + source[:i] for i in range(len(source))] table.sort() return ''.join([row[-1] for row in table])def decode(encoded): length = len(encoded) table = [''] * length for i in range(length): table = sorted([encoded[m] + table[m] for m in range(length)]) print(table) s = [row for row in table if row.endswith(EOL)][0] return s.rstrip(EOL)['$', 'a', 'a', 'a', 'b', 'n', 'n']['$b', 'a$', 'an', 'an', 'ba', 'na', 'na']['$ba', 'a$b', 'ana', 'ana', 'ban', 'na$', 'nan']['$ban', 'a$ba', 'ana$', 'anan', 'bana', 'na$b', 'nana']['$bana', 'a$ban', 'ana$b', 'anana', 'banan', 'na$ba', 'nana$']['$banan', 'a$bana', 'ana$ba', 'anana$', 'banana', 'na$ban', 'nana$b']['$banana', 'a$banan', 'ana$ban', 'anana$b', 'banana$', 'na$bana', 'nana$ba']

HTML view coming soon.

Download PDF for the full formatted version.