Aralıklı toplam probleminin Segment Ağacı uygulaması için Zaman Karmaşıklığı kanıtı


10

Bölüm ağaçlarının alt dizinin toplamını bulmak için kullanılabileceğini anlıyorum A. Ve bunun yapılabileceğiO(logn)zaman burada öğretici göre .

Ancak sorgulama zamanının gerçekten olduğunu kanıtlayamıyorum O(logn). Bu bağlantı (ve diğerleri), her düzeyde, işlenen maksimum düğüm sayısının4 ve bu yüzden O(4logn)=O(logn).

Ama bunu belki de çelişkiyle nasıl kanıtlayabiliriz?

Ve eğer öyleyse, daha yüksek boyutlu dizilerin menzilli toplamı için segment ağaçları kullanırsak, kanıt nasıl genişletilirdi?

Örneğin, orijinal matrisi 4 kadrana bölerek (lineer dizilerde yarılanma aralıklarına benzer şekilde) bir alt matris toplamı bulmayı düşünebilirim, ancak çeyrek daire ağacı oluşturuyor, ancak kanıt beni atlatıyor.


segment ağacının inşası O (n), sorgulama O (log n) ve güncelleme O (log N) 'dir. Toplam dizisi üzerindeki faydası güncelleme karmaşıklığı üzerindedir.
Nurlan

Yanıtlar:


11

İddia şu ki en fazla 2her düzeyde genişletilen düğümler. Bunu çelişkiyle kanıtlayacağız.

Aşağıda verilen segment ağacını düşünün.

Ağaç Segmenti

Diyelim ki var 3bu ağaçta genişletilmiş düğümler. Bu, aralığın en soldaki en renkli düğümden en sağdaki düğüme kadar olduğu anlamına gelir. Ancak, aralık en sağdaki düğüme uzanırsa, orta düğümün tüm aralığının kapsandığını unutmayın. Bu nedenle, bu düğüm hemen değeri döndürür ve genişletilmez. Böylece, her seviyede en fazla genişlediğimizi kanıtlıyoruz2 düğümler ve beri logn düzeyleri, genişletilmiş düğümler 2logn=Θ(logn)

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.