Bölüm 5 · Simülasyon

Trie, Sonek Dizisi ve Sonek Trie'si

← Bölüm 5

Trie

Hazır.

Trie, Sonek Dizisi ve Sonek Trie'si

Sözcüklerden bir trie kurulur, önek sorguları incelenir ve sonek dizisinin sıralaması sonek trie'sinin saklama biçimiyle karşılaştırılır.

Kullanım

  • Trie: virgülle ayrılmış sözcükler (en çok 10 sözcük, her biri en çok 12 harf) ve bir önek girin, ardından Kur / Önek Ara düğmesine basın. Arama yolu vurgulanır; dolu düğümler sözcük sonunu gösterir.
  • Sonek: en çok 16 karakterlik bir metin girin ve Sonek Yapılarını Kur düğmesine basın. Sonek dizisi solda listelenir, kaba kuvvet sonek trie'si sağda çizilir.
  • Sonek dizisinde bir satıra tıklayınca o sonekin sonek trie'sindeki yolu vurgulanır. Giriş alanında Enter da yeniden kurar.

Trie

Her kenar bir karakter saklar; ortak öneki olan tüm sözcükler kökten aynı yolu paylaşır. Önek sorgusu en çok |p| kenar aşağı iner; bu yüzden kaç sözcük saklandığından bağımsız olarak O(|p|) zaman alır.

Sonek dizisi ve LCP

Sonek dizisi, soneklerin başlangıç konumlarını sıralı tutar. LCP sütunu, bir sonek ile sıralamada ondan önceki sonekin en uzun ortak önekinin uzunluğunu verir. Sonekler karakter karakter (kod noktası sırasıyla) karşılaştırılır.

Sonek trie'si

Sonek trie'si her soneki kökten başlayan bir yol olarak saklar; kaba kuvvet sonek trie'si O(n²) bellek gerektirebilir. Dolu düğüm bir sonekin sonunu gösterir. Sonek ağaçları tek çocuklu zincirleri sıkıştırarak O(n) belleğe iner.

Karmaşıklık

YapıKurmaBellekSorgu
TrieO(toplam uzunluk)O(toplam uzunluk)O(|p|)
Sonek dizisi (kaba kuvvet sıralama)O(n² log n)O(n)O(|p| log n)
Sonek trie'si (kaba kuvvet)O(n²)O(n²)O(|p|)