Optimum şekilde ikili arama ağacında hazırlanmasında en küçük elemanı bul
Herhangi bir statik/global değişken kullanmadan ikili arama ağacında hazırlanmasında en küçük elemanı bulmak lazım. Nasıl verimli bir şekilde elde etmek için? Benim aklımdaki çözüm Ç işlemi(n), tüm ağaç O'na bir geçiş yapmayı planlıyorum bu yana en kötü durum yapıyor. Ama aslında burada BST özelliğini kullanarak olmadığımı hissediyorum. Assumptive benim çözüm doğru ya da daha iyisini yapmak mümkün müdür ?
CEVAP
Ä°ÅŸte bu fikir sadece bir film
Bir BST, T
düğümünün sol alt ağacı sadece elemanları değerden küçük T
saklanan içerir. k
sol alt ağaçtaki eleman sayısı küçükse, k
inci en küçük elemanı sol alt etmek zorundadır. k
büyükse, aksi takdirde, k
inci en küçük elemanı sağ alt.
Her düğüm sol alt ağaçtaki eleman sayısını saklamak için BST arttırabiliriz. Bu bilgiyi, sol alt ağaçtaki sürekli eleman sayısını sorarak ağaç travers basit, sol veya sağ alt yinelenmesine yapmaya karar vermek.
Şimdi, düğüm T olduğumuzu varsayalım:
- Eğer== num_elements k(T alt solda)o zaman aradığımız cevap
T
düğüm. değer, - Eğerk >num_elements(T) sol alt ağacıo zaman kesinlikle sol alt göz ardı edemeyiz, bu unsurları da
k
küçük inci. den daha küçük olacak çünkü Bu yüzden, sağ alt ağacık - num_elements(left subtree of T)
en küçük elemanı bulma sorunu azaltıyoruz. - Eğerk &; num_elements(T ALT sol) lt
k
th küçük bir yerde sol alt ağaç sonra , sol alt ağaçtakik
inci en küçük elemanı bulma sorunu azaltıyoruz.
Karmaşıklık analizi:
Bu rastgele bir BST için ortalama dengeli bir BST, ya O(log n)
en kötü durumda O(log n)
O(depth of node)
zaman alır.
Bir BST O(n)
depolama gerektirir, ve O(n)
başka bir eleman sayısı ile ilgili bilgileri saklamak için alır. Korumak için O(depth of node)
zaman ve O(depth of node)
ekstra zaman alır tüm BST operasyonları "öğe sayısı" düğüm ekleme, silme ya da dönüş için bilgi. Bu nedenle, sol alt ağaçtaki eleman sayısı hakkında bilgi depolama bir BST Uzay ve zaman karmaşıklığı devam ediyor.
Nasıl iki sıralı diziler Birliği hazır...
Nasıl dava Vim / küçük harf duyarlı ar...
İkili ağaç ve ikili arasındaki fark ar...
Nasıl O n uzunluğu sıralanmamış bir di...
Nasıl bir büyük / küçük harf duyarlı b...