Kavramsal olarak basit doğrusal zaman soneki ağaç yapıları


13

1973 yılında Weiner ilk doğrusal-zaman eki yapımını verdi. Algoritma 1976'da McCreight ve 1995'te Ukkonen tarafından basitleştirildi. Yine de, Ukkonen'in algoritmasının kavramsal olarak nispeten ilgili olduğunu düşünüyorum.

1995'ten beri Ukkonen algoritmasında basitleştirmeler var mı?


4
Farach et el 1998. Bu okumaya başlamak için iyi bir yer olduğunu düşünüyorum: scholar.google.co.uk/…
Radu GRIGore

Yanıtlar:


9

Sonek ağaçlarının yapımını doğrudan basitleştiren yeni sonuçların olup olmadığından emin değilim. Ancak, sonek dizilerini doğrusal zamanda oluşturmak için çok basit bir algoritma veren en az bir sonuç elde edilmiştir.

Eşdeğer bir sonek ağacı oluşturmak için bir sonek dizisi ( en uzun ortak öneki sorgulamak için zamanıyla kullanabileceğinizden, bu iki veri yapısı arasında kavramsal bir eşdeğerlikten fazlası olduğunu unutmayın . Bu nispeten basit bir egzersiz olmalı, ancak gerekirse daha fazla ayrıntı verebilirim.O(1)

Ayrıca, pratik amaçlar için zamanında sonek dizileri oluşturmak daha da kolaydır , ancak sanırım burada biraz konu dışı gidiyorum.O(nlgn)


1
O (N lg N) zamanında sonek dizileri oluşturmanın daha kolay yoluna bir işaret verebilir misiniz?
Randomblue

1
2 ^ k uzunluğundaki tüm sonekleri bir tamsayı ile etiketleyin, böylece etiketler sonekler arasındaki sipariş ilişkisine karşılık gelir. İlk adım (k = 0) açıktır. Adım k'deki etiketleri hesaplamak için adım k-1'deki etiketleri kullanın ve sayı tabanı sıralaması yapın. Bu makalenin anlaşılması kolay olmalıdır: webglimpse.net/pubs/suffix.pdf
zotachidil

7

Bahsedilene ek olarak ( Kärkkäinen & Sanders, 2003 ), sanırım Kärkkäinen, Sanders ve Burkhard, 2006'nın "yeni" versiyonunu takdir edersiniz . Algoritma temel olarak Farach'ın algoritmasının yapısını takip eder. Muhtemelen kavramsal olarak daha basittir, ancak asıl bonus okuyucuya algoritmanın bir uygulamasını sağlamalarıdır. Sadece 50 satır C ++, bu yüzden gerçekten gizli detay yok.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.