Bölüm 1.2 · Simülasyon

Özyineleme ve Ana Teorem

← Bölüm 1.2

T(n) = a·T(n/b) + n^k

Özyineleme Ağacı

düğümler · alt problem boyutu · düzey işi

Özyineleme ve Ana Teorem

T(n) = aT(n/b) + f(n) biçimindeki yineleme bağıntılarını inceleyin, özyineleme ağacının düzeylerini karşılaştırın ve bağıntıyı Ana Teorem'le sınıflandırın.

Kullanım

  • a (alt problem sayısı, a ≥ 1), b (küçülme çarpanı, b > 1), k (özyinelemeli olmayan iş f(n) = nk) ve örnek bir girdi boyutu n girin, ardından Bağıntıyı Çöz'e basın.
  • Sol panel kritik üs logba'yı, Ana Teorem durumunu ve öngörülen sınırı gösterir.
  • Özyineleme ağacında her i düzeyi için bir satır vardır: her biri n/bi boyutunda ai alt problem (küçük kareler; en çok 30 tane çizilir, “…” daha fazlası olduğunu gösterir) ve o düzeydeki toplam iş ai·(n/bi)k. Çubuk, düzeydeki işi en ağır düzeyle karşılaştırır. En çok 10 düzey çizilir.

Ana Teorem

f(n) = nk ile nlogba karşılaştırılır:

  • Durum 1 (k < logba): özyinelemeli iş baskındır; düzeydeki iş yapraklara doğru artar; T(n) = Θ(nlogba).
  • Durum 2 (k = logba): her düzey aynı miktarda iş katar; T(n) = Θ(nk log n).
  • Durum 3 (k > logba): kök baskındır; düzeydeki iş yapraklara doğru azalır; T(n) = Θ(nk). Durum 3 için bir c < 1 ile a·f(n/b) ≤ c·f(n) düzenlilik koşulu gerekir; f(n) = nk için bu koşul c = a/bk ile her zaman sağlanır.

Örnekler

Bağıntıa, b, kSınır
İkili arama1, 2, 0Θ(log n)
Birleştirme sıralaması2, 2, 1Θ(n log n)
Karatsuba3, 2, 1Θ(n1.585)
Strassen7, 2, 2Θ(n2.807)