Bölüm 5 · SimülasyonDizgi Dönüşümü: Burrows–Wheeler Dönüşümü? ← Bölüm 5 Girdi $ ekle Girdiyi Yükle Adım İlerle Otomatik Oynat Sıfırla1. Döndürmeleri Üret2. Döndürmeleri Sırala3. Son Sütunu OkuDöndürme TablosuBWT Sonucu–Henüz oluşturulmadı.AdımHazır.KapatBurrows–Wheeler DönüşümüTüm dairesel döndürmeler üretilir, sözlüksel sıraya dizilir ve son sütun okunarak BWT elde edilir.KullanımEn çok 12 karakterlik bir dizgi yazın ve Girdiyi Yükle düğmesine basın (aynı girdiyle baştan başlamak için Sıfırla).$ ekle, her harf ve rakamdan önce sıralanan $ bitiş işaretini ekler. İşaret olmadan da dönüşüm hesaplanır; ancak özgün dizgi yalnız satır indisi de saklanırsa geri elde edilebilir.Adım İlerle bir adım yapar: önce her adımda bir döndürme, sonra sıralama, sonra son sütunun okunması. Otomatik Oynat kalan adımları oynatır (duraklatmak için yeniden basın).Tabloda ilk sütun (F) bağlantı renginde, son sütun (L) kırmızı gösterilir; en yeni döndürme vurgulanır. Sıralamadan sonra çerçeveli satır özgün dizgidir; Kayma döndürme miktarıdır ($ varken bu sütun sonek dizisidir).Neden işe yarar?Döndürmeleri sıralamak, benzer bağlamlardan önce gelen karakterleri bir araya toplar; bu yüzden son sütunda aynı karakterlerin uzun tekrar grupları oluşur (örneğin BANANA$ → ANNB$AA). Çalışma uzunluğu kodlaması (RLE) ve öne taşıma (move-to-front) kodlaması bunu iyi sıkıştırır; bzip2'nin özü budur.Dönüşümü tersine çevirmeİlk sütun F, son sütun L'nin sıralanmış hâlidir. LF eşlemesi bir karakterin L'deki i'nci geçişini F'deki i'nci geçişine bağlar; böylece özgün dizgi, onu tutan satırdan başlanarak geriye doğru yeniden kurulur.KarmaşıklıkBu kaba kuvvet yöntem n uzunluğunda n döndürme kurar ve sıralar: O(n² log n) zaman ve O(n²) bellek. Pratik uygulamalar BWT'yi bir sonek dizisinden O(n) ya da O(n log n) zamanda türetir.