Lab / CSE 301 / Recursion tree ve Master theorem
L3Her vizedeHW2~50 dk · 10 bölüm

Recursion tree ve Master theorem

Recursive bir algoritmanın running time'ı bir recurrence ile yazılır: $T(n)$, daha küçük $T$'ler cinsinden ifade edilir. Bu derste recurrence kurmayı, recursion tree ile level level toplamayı, Master theorem'i ve teorem uygulanamadığında ne yapacağını göreceksin.

Recurrence kurmak

Sezgi · MergeSort

MergeSort array'i ikiye böler, iki yarıyı kendini çağırarak sort eder, sonra $n$ adımda merge eder. "Size $n$ için running time" = "size $n/2$ için iki running time" + "merge":

$$T(n) = 2\,T(n/2) + n, \qquad T(1) = 1$$

Buna recurrence denir: fonksiyon kendi küçük değerleri cinsinden tanımlanır.

Tarif: üç soru
  1. Kaç recursive call var? → $a$
  2. Her call hangi size'da? → $n/b$ (ya da $n-1$, $\sqrt n$…)
  3. Call'ların dışında ne kadar iş var (divide + combine)? → $f(n)$
$$T(n) = a\,T(n/b) + f(n), \qquad T(\text{küçük}) = O(1)$$
Örnek · koddan recurrence
Foo(n):
    if n <= 1: return 1
    s = 0
    for i = 1..n: s = s + 1               // n iş
    return Foo(n/3) + Foo(n/3) + Foo(n/3) + Foo(n/3)

Dört recursive call var, her biri $n/3$ size'ında, dışarıda $n$ iş: $T(n) = 4T(n/3) + n$. Aynı kodda x = Foo(n/3) yazıp 4*x döndürseydin tek call olurdu: $T(n) = T(n/3) + n$. Sonucun kaç kez kullanıldığını değil, call sayısını say.

AlgoritmaRecurrenceNeden
Mult1 (4 multiplication)$4T(n/2) + O(n)$$ac, ad, bc, bd$ + addition'lar
Karatsuba$3T(n/2) + O(n)$$ad+bc = (a+b)(c+d) - ac - bd$
Binary search$T(n/2) + O(1)$middle element'e bak, tek yarıda devam et
Powering $a^n$$T(n/2) + O(1)$val = POWER(a, n/2), sonra val*val
Matrix multiplication (block)$8T(n/2) + \Theta(n^2)$8 recursive multiplication, matrix addition'lar
Strassen$7T(n/2) + \Theta(n^2)$7 recursive multiplication yetiyor
Tuzaklar
  • return POWER(a, n/2) * POWER(a, n/2) yazarsan iki recursive call olur: $T(n) = 2T(n/2) + 1 = \Theta(n)$. Bütün kazanç gider.
  • Recurrence "$\le$" ile verilmişse (örneğin $T(n) \le 2T(n/2) + n$) sadece upper bound, yani $O$ çıkar. Θ diyebilmek için lower bound'u da göstermelisin.
  • Base case'i unutma: "$T(1) = O(1)$" ya da soruda verilen değer ($T(2) = 1$ gibi).
Sample 1 (28/10/2026) S4 · Fragment 3 · dene

countOperations(n): $n \times n$ nested loop ile bir counter'ı artırıyor, sonra countOperations(n / 2) sonucunu ekleyip döndürüyor. Big-Oh complexity'si nedir?

İpucu 1

Önce recurrence'ı kur: fonksiyon kendini kaç kez ve hangi size ile çağırıyor? Recursive call'un dışındaki iki loop toplam kaç iteration yapıyor?

İpucu 2

$a$, $b$, $d$'yi oku ve $a$ ile $b^d$'yi karşılaştır: tree'nin hangi kısmı baskın?

Powering: val = POWER(a, n/2); return val * val (n çift). Recurrence hangisi?

Recursion tree: level tablosu

Sezgi

Her node bir subproblem'dir. Node'un içine o call'un kendi işini yaz (child'ların işi hariç). $T(n)$, bütün node'ların toplamıdır. En kolayı bunu level level toplamak, çünkü bir level'deki bütün node'lar aynı size'dadır.

Bir recurrence seç ve oynat. Tree gerçekten açılıyor (her node $a$ child'a ayrılıyor) ve her satırdaki sayılar bu açılımdan sayılarak bulunuyor. Kolaylık olsun diye $n = b^4$ ve $T(1) = c$.

Level tablosu · $T(n) = a\,T(n/b) + c\,n^d$
LevelProblem sayısıHer birinin size'ıLevel'deki iş
01$n$$c\,n^d$
1$a$$n/b$$a\,c\,(n/b)^d$
$t$$a^t$$n/b^t$$a^t c\,(n/b^t)^d = c\,n^d \left(\dfrac{a}{b^d}\right)^t$
$\log_b n$$a^{\log_b n} = n^{\log_b a}$1$c\, n^{\log_b a}$
$$T(n) = c\,n^d \sum_{t=0}^{\log_b n} \left(\frac{a}{b^d}\right)^t$$

Yani her level bir öncekinin $a/b^d$ katıdır. Sonucu bu oran belirler.

Tuzaklar
  • Depth $\log_b n$'dir, her zaman $\log_2 n$ değil: $T(n/4)$ ise $\log_4 n$ level vardır.
  • Leaf sayısı $n$ değil, $a^{\log_b n} = n^{\log_b a}$. MergeSort'ta ($a = b = 2$) bu sayı tesadüfen $n$'ye eşit.
  • "Bir node'un işi" ile "level'in işi"ni karıştırma: level işi = node sayısı × node başına iş.

CS161 concept check · $T(n) = 5T(n/4) + 2n$

Yukarıdaki menüde bu recurrence var. Önce tabloyu kendin doldur, sonra oynatıp kontrol et.

Level 4'te (root level 0) kaç problem var?

Level $i$'nin toplam katkısı nedir?

$T(n)$ için hangisi doğru? ($\log_4 5 \approx 1.16$)

Recursion tree · 2026–27 Form A C1

n=64 için (problem sayısı, boyut, toplam iş) seviyeleri (1,64,64), (3,16,48), (9,4,36). a,b,d ve kapalı toplamı bul; Master theorem kullanma.

İpucu
Problem sayısı her seviyede kaç kat artıyor? Boyut kaça bölünüyor? Yaprak seviyesi de toplama dahil.
Çözümü göster

a=3,b=4,d=1. t. seviyede 3^t problem, boyut n/4^t, iş n(3/4)^t. h=log₄n; h+1 seviye. Yapraklar 3^h. Geometric sum: T(n)=4n−3n^(log₄3)=Θ(n). n=64 için 64+48+36+27=175.

A–D formlarındaki sorular ve kâğıt provası →

Geometric series: root mu, leaf'ler mi?

Sezgi · "the eternal struggle"

İki etki birbirine karşı çalışıyor. Branching ($a$) subproblem sayısını hızla artırır ve işi aşağı iter. Size'ın küçülmesi ($b^d$) alttaki subproblem'leri ucuzlatır ve işi yukarıda tutar. Hangisinin kazandığını $r = a/b^d$ söyler.

Geometric sum $\sum_{t=0}^{N} r^t$
  • $r < 1$: ilk term baskın. Toplam $1$ ile $\frac{1}{1-r}$ arasında, yani $\Theta(1)$.
  • $r = 1$: bütün term'ler 1'dir. Toplam $N + 1$.
  • $r > 1$: son term baskın. Toplam $r^N$ ile $r^N \cdot \frac{r}{r-1}$ arasında, yani $\Theta(r^N)$.

$N = \log_b n$ alıp önüne $c\,n^d$ çarpanını koyunca:

CaseResimSonuçSlayt örneği
$a < b^d$Root-heavy: tall and skinny, iş tepede$\Theta(n^d)$$T(n/2) + n = \Theta(n)$
$a = b^d$Balanced: her level aynı$\Theta(n^d \log n)$$2T(n/2) + n = \Theta(n\log n)$
$a > b^d$Leaf-heavy: bushy, iş en altta$\Theta(n^{\log_b a})$$4T(n/2) + n = \Theta(n^2)$

Üçüncü satırda: $n^d \cdot (a/b^d)^{\log_b n} = n^d \cdot \dfrac{a^{\log_b n}}{n^d} = n^{\log_b a}$, yani leaf sayısı.

Üç tree yan yana

Tablodaki üç örnek aynı $b = 2$ ve aynı $f(n) = n$'yi kullanıyor, sadece $a$ farklı. Üçünü aynı anda level level aç: her node'un içinde kendi size'ı yazıyor, her level'in altında o level'deki toplam iş var.

Önce tahmin et: $n = 16$ için her tree'nin leaf level'inde (size 1) toplam kaç birim iş olur?

hazır:
S5.5 midterm review · bu toplamlar neye eşit?
  1. $n + n + n + \dots$ ($\log n$ term)
  2. $n + n/2 + n/4 + n/8 + \dots$ ($\log n$ term)
  3. $n + n + n + \dots$ ($n$ term)
  4. $n + n/2 + n/3 + n/4 + \dots + n/n$
Cevapları göster
  1. $n\log n$: balanced tree (MergeSort).
  2. $\le 2n$, yani $\Theta(n)$: oran $\tfrac12$, ilk term baskın.
  3. $n^2$.
  4. $n\,(1 + \tfrac12 + \dots + \tfrac1n) = n H_n = \Theta(n\log n)$: harmonic series, $H_n \approx \ln n$. Geometric değil, term'ler çok yavaş küçülüyor.
Class prep S18 ve S22 · dene

S18: Master theorem'in üç case'ini ezberden yaz. Her case'te işin root'ta mı, leaf'lerde mi toplandığını, yoksa level'lere eşit mi dağıldığını açıkla.
S22: $b$ ve $f(n)$ aynı kalırken $a$'yı iki katına çıkarırsan sonuç nasıl değişir? Bu sezgisel olarak neden mantıklı?

İpucu 1

Her şeyi $r = a/b^d$ ile düşün. $a$ iki katına çıkınca $r$ ne olur?

İpucu 2

Başlangıçtaki üç case'i ayrı ayrı dene: $r < 1$, $r = 1$, $r > 1$. Örnek: $2T(n/2) + n$'den $4T(n/2) + n$'ye geç.

Çözümü göster

S18: Level $t$'deki iş $c\,n^d r^t$, burada $r = a/b^d$. $r < 1$ ise level'ler geometric olarak küçülür ve root'un işi ($c\,n^d$) toplamın constant bir kesridir ⇒ $\Theta(n^d)$. $r = 1$ ise $\log_b n + 1$ level'in her biri $c\,n^d$ iş yapar ⇒ $\Theta(n^d\log n)$. $r > 1$ ise level'ler büyür ve son level (leaf'ler, $n^{\log_b a}$ tane) toplamın constant bir kesrini taşır ⇒ $\Theta(n^{\log_b a})$.

S22: $a \to 2a$ ise $r \to 2r$: branching artar, iş aşağı kayar. Balanced case leaf-heavy olur: $2T(n/2) + n = \Theta(n\log n)$ iken $4T(n/2) + n = \Theta(n^2)$. Leaf-heavy case'te exponent $\log_b 2$ kadar artar ($\log_b 2a = \log_b a + \log_b 2$). Root-heavy case'te $2a$ hâlâ $b^d$'den küçükse sonuç değişmez: $T(n/2) + n^2$ ve $2T(n/2) + n^2$ ikisi de $\Theta(n^2)$. $2a = b^d$ olursa bir $\log n$ çarpanı eklenir.

$n + \tfrac n2 + \tfrac n3 + \dots + \tfrac nn$ toplamı nedir?

Master theorem

Master theorem (CS161 sürümü)

$a \ge 1$, $b > 1$ ve $d$, $n$'den bağımsız constant'lar olsun. $T(n) = a\,T(n/b) + O(n^d)$ ise

$$T(n) = \begin{cases} O(n^d \log n) & a = b^d \\ O(n^d) & a < b^d \\ O(n^{\log_b a}) & a > b^d \end{cases}$$

$a$: subproblem sayısı · $b$: size'ın küçülme çarpanı · $d$: divide + combine işinin exponent'i. İş term'i $\Theta(n^d)$ ise ve recurrence bir eşitlikse sonuçlar da Θ olur. $n/b$ yerine $\lfloor n/b \rfloor$ ya da $\lceil n/b \rceil$ olması sonucu değiştirmez.

Tarif
  1. $a$, $b$, $d$'yi oku (constant çarpanları at: $10\sqrt n$ ⇒ $d = \tfrac12$; constant iş ⇒ $d = 0$).
  2. $b^d$'yi hesapla, $a$ ile karşılaştır.
  3. Case'i yaz ve sonucu ver. Sınavda "$a = 4,\ b = 2,\ d = 1,\ a > b^d$" satırını mutlaka yaz.

Kendin dene: a, b, d explorer

Slider'ları oynat ya da kutulara kendi değerini yaz. Bar'lar ilk yedi level'in işini root'un işine göre gösteriyor ($n = b^6$ ile level tablosundan hesaplanıyor). Altta recurrence gerçekten çalıştırılıyor ve $T(n)$ bulunan Θ'ya bölünüyor: oran bir constant'a yaklaşıyorsa sonuç doğru.

Önce tahmin et: Karatsuba'da ($a = 3$, $b = 2$, $d = 1$) level 6'nın işi root'un kaç katı olur, 1'den büyük mü küçük mü?

hazır:
Recurrence$a, b, d$ComparisonSonuçNereden
$4T(n/2) + n$4, 2, 1$4 > 2$$\Theta(n^2)$Mult1 · 2025-26 s.41
$3T(n/2) + n$3, 2, 1$3 > 2$$\Theta(n^{\log_2 3}) \approx n^{1.585}$Karatsuba · CS161 s.21
$2T(n/2) + n$2, 2, 1$2 = 2$$\Theta(n\log n)$MergeSort · class prep S19
$T(n/2) + n$1, 2, 1$1 < 2$$\Theta(n)$CS161 s.21 · tam median pivot ile Select
$T(n/2) + 1$1, 2, 0$1 = 2^0$$\Theta(\log n)$binary search, powering
$8T(n/2) + n^2$8, 2, 2$8 > 4$$\Theta(n^3)$block matrix multiplication
$7T(n/2) + n^2$7, 2, 2$7 > 4$$\Theta(n^{\log_2 7}) \approx n^{2.81}$Strassen
$4T(n/2) + n^2$4, 2, 2$4 = 4$$\Theta(n^2\log n)$2025-26 s.42
$4T(n/2) + n^3$4, 2, 3$4 < 8$$\Theta(n^3)$2025-26 s.43
$3T(n/2) + n^2$3, 2, 2$3 < 4$$\Theta(n^2)$S2 §3
$3T(n/81) + 10\sqrt{\sqrt n}$3, 81, ¼$81^{1/4} = 3$$\Theta(n^{1/4}\log n)$CS161 concept check S2
Tuzaklar
  • $\log_b a$, $\log_a b$ değil: $3T(n/2)$ için $\log_2 3 \approx 1.585$.
  • $d$ bir exponent: $\sqrt{\sqrt n} = n^{1/4}$, $n\sqrt n = n^{3/2}$. Constant iş için $d = 0$, $n^0 = 1$.
  • $d$ kesirliyse comparison'ı dikkatli yap: $3T(n/2) + n^{3/2}$ için $2^{1.5} \approx 2.83 < 3$ ⇒ leaf-heavy.
  • Öndeki constant ($30n$, $10\sqrt{\sqrt n}$) ne case'i ne de sonucu değiştirir.
HW2 1.1 ve 1.2 · dene

1.1 $T(n) = 6T(n/3) + n^3$ için tight bound'u söyle ve kanıtla. 1.2 $T(n) = 4T(n/5) + n$ için recursion tree ile bir upper bound ver.

İpucu 1

1.1: $3^3 = 27$ ile 6'yı karşılaştır. "Tight" için Θ gerekir; lower bound root'un işinden gelir.

İpucu 2

1.2: Tabloyu doldur: level $t$'de $4^t$ problem var, size $n/5^t$. Level işi $n(4/5)^t$. Oranı 1'den küçük bir geometric sum çıkıyor.

Çözümü göster

1.1: $a = 6$, $b = 3$, $d = 3$, $b^d = 27 > 6$ ⇒ Master theorem ile $T(n) = O(n^3)$. Root'ta zaten $n^3$ iş var, yani $T(n) \ge n^3$ ⇒ $\Omega(n^3)$. Birlikte $T(n) = \Theta(n^3)$.

1.2: Level $t$: $4^t$ problem, her biri $n/5^t$, toplam $4^t \cdot n/5^t = n(4/5)^t$. $\log_5 n + 1$ level. $T(n) \le n\sum_{t\ge0}(4/5)^t = n \cdot \frac{1}{1 - 4/5} = 5n$ ⇒ $T(n) = O(n)$. (Kontrol: $n = 5^{10}$'da $T(n)/n \approx 4.57 \le 5$.)

2019-20 çözüm seti (UNM) S1(d) · çıkmış soru

"For each of the questions below, please give the answer in terms of theta notation. (d) Solution to the recurrence $T(n) = 8T(n/2) + \sqrt n$" (sorunun bu bölümle ilgili kısmı)

İpucu 1

$\sqrt n$'yi $n^d$ biçiminde yaz. $d$ kaç?

İpucu 2

$b^d = 2^{1/2} \approx 1.41$. Bunu $a = 8$ ile karşılaştır: tree'nin hangi ucu baskın?

Çözümü göster

$a = 8$, $b = 2$, $d = \tfrac12$. $b^d = \sqrt 2 \approx 1.41 < 8 = a$ ⇒ leaf-heavy ⇒ $T(n) = \Theta(n^{\log_2 8}) = \boxed{\Theta(n^3)}$.

Neden: leaf sayısı $8^{\log_2 n} = n^3$. Her level bir öncekinin $8/\sqrt2 \approx 5.66$ katı iş yapıyor, root'taki $\sqrt n$ bu büyümenin yanında önemsiz kalıyor.

Kontrol: $T(1) = 1$ ve $n = 2^k$ için açık form $T(n) = n^3 + \dfrac{n^3 - \sqrt n}{4\sqrt2 - 1}$. Yani $T(n)/n^3 \to 1 + \frac{1}{4\sqrt2 - 1} \approx 1.21$, sabit bir sayı.

2023-24 vizesi S3(b), 1.–2. recurrence · çıkmış soru

"(b) (15 points) For each recurrence, choose the expression (1)-(5) below which most accurately describes it. Note that not all options need to be used, and some options may be used more than once. If it helps, $\log_2(3) \approx 1.6$, and $\sum_{i=0}^{t} i^2 = \theta(t^3)$. Assume that $T(1) = O(1)$ and don't worry about floors and ceilings.

(1) $\theta(\log n)$ (2) $\theta(n)$ (3) $\theta(n\log n)$ (4) $\theta(n^{\log_2 3})$ (5) $\theta(n^3)$

  • $T(n) = 3T(n/2) + n^{3/2}$
  • $T(n) = 3T(n/2) + n$"

(sorunun bu bölümle ilgili kısmı; diğer üç recurrence Bölüm 6, 7 ve 8'de)

İpucu 1

İkisinde de $a = 3$, $b = 2$. Sadece $d$ değişiyor: $\tfrac32$ ve $1$. Her biri için $b^d$'yi hesapla.

İpucu 2

$2^{3/2} = 2\sqrt2 \approx 2.83$. Bu 3'ten büyük mü, küçük mü? Soruda verilen $\log_2 3 \approx 1.6$ da $\tfrac32$ ile karşılaştırmaya yarar.

Çözümü göster

1. recurrence: $a = 3$, $b = 2$, $d = \tfrac32$, $b^d = 2\sqrt2 \approx 2.83 < 3$ ⇒ leaf-heavy ⇒ $\Theta(n^{\log_2 3})$ ⇒ (4). Aynı şeyi exponent'lerle de görebilirsin: $\log_2 3 \approx 1.585 > 1.5$, yani leaf'lerin toplamı $n^{1.585}$, root'taki $n^{1.5}$ işten büyük.

2. recurrence: $a = 3$, $b = 2$, $d = 1$, $b^d = 2 < 3$ ⇒ $\Theta(n^{\log_2 3})$ ⇒ (4). Bu Karatsuba'nın recurrence'ı.

İkisi de aynı seçeneğe gidiyor. Soru "some options may be used more than once" diyerek buna izin veriyor.

Kontrol: $T(1) = 1$ ile ikincisinin açık formu $T(n) = 3n^{\log_2 3} - 2n$. Birincisinde oran $3/2^{1.5} \approx 1.06$, 1'e çok yakın; bu yüzden $T(n)/n^{\log_2 3}$ yavaş yavaş $\approx 17.5$'e yaklaşıyor ama sonuç yine $\Theta(n^{\log_2 3})$.

2023-24 vizesi S3(d) · çıkmış soru

"(d) (10 points) Allie and Brandon each have come up with a divide-and-conquer algorithm to solve a problem.

  • Allie's algorithm splits a problem of size $n$ into four pieces, each of size $n/2$, solves the pieces recursively, and takes time $30n$ to combine the results.
  • Brandon's algorithm takes time $n^3$ to turn a problem of size $n$ into a smaller problem of size $n/2$, which it then solves recursively.

Write recurrences for the runtime of Allie's algorithm, $T_A(n)$, and the runtime of Brandon's algorithm, $T_B(n)$. Find which algorithm has an asymptotically better runtime by solving each recurrence."

İpucu 1

Her cümleyi Bölüm 1'deki üç soruya çevir: kaç call, hangi size, dışarıda ne kadar iş? "$30n$" ve "$n^3$" dışarıdaki iş.

İpucu 2

$T_A(n) = 4T_A(n/2) + 30n$, $T_B(n) = T_B(n/2) + n^3$. Şimdi her birinde $a$ ile $b^d$'yi karşılaştır.

Çözümü göster

Allie: $T_A(n) = 4T_A(n/2) + 30n$. $a = 4$, $b = 2$, $d = 1$, $b^d = 2 < 4$ ⇒ leaf'ler baskın ⇒ $T_A(n) = \Theta(n^{\log_2 4}) = \Theta(n^2)$. 30 constant'ı sonucu değiştirmez.

Brandon: $T_B(n) = T_B(n/2) + n^3$. $a = 1$, $b = 2$, $d = 3$, $b^d = 8 > 1$ ⇒ root baskın ⇒ $T_B(n) = \Theta(n^3)$. (Tree'de level'ler $n^3, n^3/8, n^3/64, \dots$, toplam $\le \tfrac87 n^3$.)

Sonuç: $n^2 = o(n^3)$, yani dört subproblem çözmesine rağmen Allie'nin algoritması asymptotically daha iyi.

Kontrol: $T(1) = 1$ ve $n = 2^k$ için $T_A(n) = 31n^2 - 30n$, $T_B(n) = \tfrac87(n^3 - 1) + 1$.

$T(n) = 9T(n/3) + n^2$ nedir?

Master theorem ne zaman uygulanmaz?

S5.5: bu dersin sürümü için
  • Subproblem'ler aynı size'da değil: $T(n/5) + T(7n/10) + n$, $T(n/3) + T(2n/3) + n$.
  • Size bölünmüyor, azalıyor: $T(n-1) + n$. $n/b$ formunda değil.
  • İş $n^d$ formunda değil: $n\log n$, $n^2/\log n$, $2^n$.
  • $a$ ya da $b$ constant değil ($\sqrt n\,T(\sqrt n) + n$), ya da $a < 1$.

"Uygulanmaz", "çözülmez" anlamına gelmez. Recursion tree ile topla, unrolling yap, change of variables uygula ya da substitution ile ispatla.

Class prep S21 · $T(n) = 2T(n/2) + n\log n$

Akla ilk gelen ama yanlış cevap: "$a = b^d$ gibi, $\Theta(n\log n)$". $n\log n$, $n^1$ değil; $n^{1+\epsilon}$ de değil. Tree ile topla ($n = 2^k$):

$$\text{seviye } t:\ 2^t \cdot \frac{n}{2^t}\log\frac{n}{2^t} = n(k - t) \quad\Rightarrow\quad \sum_{t=0}^{k-1} n(k-t) = n\,\frac{k(k+1)}{2} = \Theta(n\log^2 n)$$

2025-26 slaytlarındaki genel Case 2 ($f(n) = \Theta(n^{\log_b a}\log^k n)$ ⇒ $\Theta(n^{\log_b a}\log^{k+1} n)$, burada $k = 1$) aynı sonucu verir.

2025-26 lecture03 s.44 · gap case $4T(n/2) + n^2/\log n$

$n^{\log_2 4} = n^2$. $f(n) = n^2/\log n$ ondan küçük ama polynomially küçük değil: aradaki oran $\log n$ ve bu hiçbir $n^\epsilon$'a yetişmez. Slayt: "Master method does not apply". Tree yine çözer: level $t$'nin işi $4^t \cdot \frac{(n/2^t)^2}{\log(n/2^t)} = \frac{n^2}{k - t}$, toplam $n^2\left(\frac1k + \frac1{k-1} + \dots + 1\right) = n^2 H_k = \Theta(n^2\log\log n)$.

CLRS sürümü (2025-26 slaytları s.37–40)

$f(n)$'yi $n^{\log_b a}$ ile karşılaştırır: (1) polynomially küçükse $\Theta(n^{\log_b a})$; (2) aynıysa $\Theta(n^{\log_b a}\log n)$; (3) polynomially büyükse ve regularity condition $a f(n/b) \le c f(n)$, $c < 1$ sağlanıyorsa $\Theta(f(n))$. $f = n^d$ iken CS161 versiyonuyla aynı sonucu verir; $4T(n/2) + n^3$'te regularity $4(n/2)^3 = \tfrac12 n^3$ ile sağlanır.

Class prep (L3–L4) S2 ve S20 · dene

Master theorem şunları neden çözemez: $T(n) = T(n-1) + n$, $T(n) = T(n/5) + T(7n/10) + cn$, $T(n) = 2T(n/2) + n\log n$? Teoremin şartlarının bozulduğu bir $aT(n/b) + f(n)$ örneği ver.

İpucu 1

Her biri için sor: $n/b$ formunda tek bir subproblem size'ı var mı? İş term'i $n^d$ formunda mı?

İpucu 2

Üçünü de çözebilirsin: ilki unrolling ile toplam (Bölüm 6), ikincisi kesirlerin toplamı (Bölüm 7), üçüncüsü bu bölümdeki tree.

Çözümü göster
  • $T(n-1) + n$: size constant bir çarpanla küçülmüyor ($b$ yok). Unroll edince $n + (n-1) + \dots + 1 = \Theta(n^2)$.
  • $T(n/5) + T(7n/10) + cn$: iki farklı size var, tek bir $a$ ve $b$ yok. Kesirler toplamı $9/10 < 1$ ⇒ $\Theta(n)$ (substitution ile $T(n) \le 10cn$).
  • $2T(n/2) + n\log n$: $f = n\log n$, $n^d$ formunda değil; $d = 1$ çok küçük, $d = 1 + \epsilon$ çok büyük. Tree ile $\Theta(n\log^2 n)$.
  • S20 örneği: $4T(n/2) + n^2/\log n$. $f$ ile $n^{\log_b a}$ arasında sadece $\log n$ çarpanı kadar fark var, polynomial bir fark yok.

CS161 Master theorem'i hangisine doğrudan uygulanabilir?

T(n−1) tipleri: unroll et ve topla

Sezgi

Size her adımda yarıya inmek yerine bir azalıyorsa tree'nin depth'i $\log n$ değil, $n$ olur. Tek call varsa tree bir zincirdir: her level'de bir node vardır ve kendi işi $f(k)$'dır. Toplam basitçe $f(n) + f(n-1) + \dots$.

Seç ve oynat. Fonksiyon $n = 8$ için gerçekten unroll ediliyor. Her satır bir level'deki call'ları ve onların işini sayıyor ($T(1) = 1$).

Unrolling $$T(n) = T(n-1) + f(n) = T(n-2) + f(n-1) + f(n) = \dots = T(1) + \sum_{k=2}^{n} f(k)$$
RecurrenceToplamΘ
$T(n-1) + 1$$n$$\Theta(n)$
$T(n-1) + n$$\frac{n(n+1)}{2}$$\Theta(n^2)$
$T(n-1) + n^2$$\frac{n(n+1)(2n+1)}{6}$$\Theta(n^3)$
$T(n-1) + \log n$$\log(n!)$$\Theta(n\log n)$
$2T(n-1) + 1$$1 + 2 + 4 + \dots + 2^{n-1} = 2^n - 1$$\Theta(2^n)$
Class prep (L3–L4) S10 · worst-case pivot

Select ya da QuickSort her seferinde minimum'u pivot seçerse subproblem size'ı $n-1$ olur: $T(n) = T(n-1) + cn$. Upper bound: $\sum_{k\le n} ck \le cn^2$. Lower bound: son $n/2$ term'in her biri $\ge cn/2$, toplam $\ge cn^2/4$. Yani $\Theta(n^2)$.

Tuzaklar
  • $T(n-1)$'i "$b = \frac{n}{n-1}$" diye Master'a sokma: $b$ constant olmalı.
  • $2T(n-1) + 1$ linear değil: call sayısı her level'de iki katına çıkıyor ve $n$ level var.
  • $T(n-1) + n^2$ için "$n$ level × $n^2$" upper bound'u doğru ($O(n^3)$), ama Θ için lower bound'u da göster: son yarıdaki term'ler $\ge n^2/4$.
2019-20 çözüm seti (UNM) S1(e) · çıkmış soru

"For each of the questions below, please give the answer in terms of theta notation. (e) Solution to the recurrence $T(n) = T(n - 1) + 1$" (sorunun bu bölümle ilgili kısmı)

İpucu 1

Üç kez unroll et: $T(n) = T(n-1) + 1 = T(n-2) + 2 = T(n-3) + 3$. $k$ adım sonra ne olur?

İpucu 2

$T(1)$'e ulaşmak için kaç adım gerekiyor? Base case'in değeri constant.

Çözümü göster

$T(n) = T(n-1) + 1 = T(n-2) + 2 = \dots = T(n-k) + k$.

$k = n - 1$ alınca $T(n) = T(1) + n - 1$. $T(1)$ bir constant olduğu için $T(n) = \boxed{\Theta(n)}$.

Tree resmiyle: tek call olduğu için tree $n$ node'luk bir zincir, her node 1 iş yapıyor.

2023-24 vizesi S3(b), 3. recurrence · çıkmış soru

"For each recurrence, choose the expression (1)-(5) below which most accurately describes it. […] If it helps, $\log_2(3) \approx 1.6$, and $\sum_{i=0}^{t} i^2 = \theta(t^3)$. Assume that $T(1) = O(1)$ […]

(1) $\theta(\log n)$ (2) $\theta(n)$ (3) $\theta(n\log n)$ (4) $\theta(n^{\log_2 3})$ (5) $\theta(n^3)$

  • $T(n) = T(n - 1) + n^2$"

(sorunun bu bölümle ilgili kısmı; tamamı Bölüm 4'te)

İpucu 1

Unroll et: her adımda size bir azalıyor ve o adımın işi $k^2$. Toplam hangi seri?

İpucu 2

Soruda verilen $\sum_{i=0}^{t} i^2 = \theta(t^3)$ tam olarak bu toplam, $t = n$ ile.

Çözümü göster

$T(n) = T(n-1) + n^2 = T(n-2) + (n-1)^2 + n^2 = \dots = T(1) + \sum_{k=2}^{n} k^2$.

$\sum_{k=1}^{n} k^2 = \frac{n(n+1)(2n+1)}{6} = \Theta(n^3)$, $T(1) = O(1)$ ⇒ $T(n) = \Theta(n^3)$ ⇒ (5).

Master theorem burada uygulanmaz: size bölünmüyor, birer birer azalıyor. Lower bound'u merak edersen: son $n/2$ term'in her biri $\ge n^2/4$, toplam $\ge n^3/8$.

Kontrol: $T(1) = 1$ ile $T(n) = \frac{n(n+1)(2n+1)}{6}$; $n = 1000$'de $T(n)/n^3 \approx 0.334$, $\tfrac13$'e yaklaşıyor.

$T(n) = T(n-1) + \log n$ nedir?

Unequal split: kesirlerin toplamı

Sezgi · 2025-26 slayt örneği

$T(n) = T(n/4) + T(n/2) + n^2$. Root $n^2$. Level 1: $(n/4)^2 + (n/2)^2 = \tfrac{5}{16}n^2$. Level 2: $(\tfrac5{16})^2 n^2$. Her level bir öncekinin $\tfrac5{16}$'sı kadar: geometric, root baskın, $\Theta(n^2)$.

Seç ve oynat. Tree gerçekten açılıyor (size'lar $n$'in kesri olarak yazılıyor). Her satırdaki toplam node'lardan hesaplanıyor.

Kural

$T(n) = \sum_i T(\alpha_i n) + c\,n^d$ için $s = \sum_i \alpha_i^d$ olsun. Level $t$'nin işi en fazla $c\,n^d s^t$.

  • $s < 1$: geometric olarak azalır ⇒ $T(n) \le \frac{c\,n^d}{1-s}$ ⇒ $\Theta(n^d)$.
  • $s = 1$: dolu level'ler $\approx c\,n^d$, depth $\Theta(\log n)$ ⇒ $\Theta(n^d\log n)$.
  • $s > 1$: level'ler büyür, sonuç $n^d$'den büyük (Akra-Bazzi, 2025-26 s.46).

Aynı term'den birden fazla varsa katsayıyı da hesaba kat: $2T(n/2)$'nin katkısı $2 \cdot (1/2)^d$.

Recurrence$s$SonuçNereden
$T(n/4) + T(n/2) + n^2$$\tfrac1{16} + \tfrac14 = \tfrac5{16}$$\Theta(n^2)$, $\le \tfrac{16}{11}n^2$2025-26 s.27–35
$T(n/5) + T(7n/10) + n$$\tfrac9{10}$$\Theta(n)$, $\le 10n$Select · S5.5
$T(n/2) + T(n/10) + T(n/20) + n$$0.65$$\Theta(n)$2023-24 S3(b)
$T(n/3) + T(2n/3) + n$$1$$\Theta(n\log n)$class prep S3'ün eşi
$2T(n/2) + 3T(n/3) + n^2$$\tfrac24 + \tfrac39 = \tfrac56$$\Theta(n^2)$CS161 concept check S3
Class prep (L3–L4) S3 · dene

$T(n) = T(n/5) + T(7n/10) + cn$'nin $O(n)$ olduğunu ispatla. $d \ge 10c$ koşulu nereden geliyor? $\tfrac15 + \tfrac7{10} = \tfrac9{10}$ ne rol oynuyor? Kesirler $\tfrac15 + \tfrac45 = 1$ olursa, ya da 1'i geçerse ne olur?

İpucu 1

Inductive hypothesis: her $k < n$ için $T(k) \le dk$. Bunu sağ tarafa koy: $T(n) \le \frac{dn}{5} + \frac{7dn}{10} + cn$.

İpucu 2

Sağ taraf $\left(\tfrac{9d}{10} + c\right)n$. Bunun $\le dn$ olması için $d$ ne olmalı? Kesirler toplamı 1 olunca aynı hesapta ne kalıyor?

Çözümü göster

$T(n) \le \frac{dn}{5} + \frac{7dn}{10} + cn = \frac{9}{10}dn + cn \le dn \iff cn \le \frac{1}{10}dn \iff d \ge 10c$. Base case için $d$'yi ayrıca $T(\text{küçük})$ değerlerini kapsayacak kadar büyük seç (S5.5'te $c = 1$, $d = 10$: $\tfrac{10}5 k + \tfrac{70}{10} k + k = 10k$).

$\tfrac9{10}$'un rolü: her level en fazla bir öncekinin $\tfrac9{10}$'u kadar. Geriye $\tfrac1{10}$'luk bir "pay" kalıyor ve $cn$'yi bu pay karşılıyor.

Kesirler toplamı 1 ise ($\tfrac15 + \tfrac45$): $dn + cn \le dn$ hiçbir $d$ için doğru değil, $O(n)$ ispatı çöker. Tree'de her dolu level $cn$ iş yapar ve depth $\Theta(\log n)$ ⇒ $\Theta(n\log n)$. Toplam 1'den büyükse level'ler büyür ve sonuç superlinear olur.

2023-24 vizesi S3(b), 4. recurrence · çıkmış soru

"For each recurrence, choose the expression (1)-(5) below which most accurately describes it. […] Assume that $T(1) = O(1)$ and don't worry about floors and ceilings.

(1) $\theta(\log n)$ (2) $\theta(n)$ (3) $\theta(n\log n)$ (4) $\theta(n^{\log_2 3})$ (5) $\theta(n^3)$

  • $T(n) = T(n/2) + T(n/10) + T(n/20) + n$"

(sorunun bu bölümle ilgili kısmı; tamamı Bölüm 4'te)

İpucu 1

Üç call var ama size'ları farklı, Master theorem doğrudan uygulanmaz. $d = 1$ için $s = \sum_i \alpha_i$'yi hesapla.

İpucu 2

$\tfrac12 + \tfrac1{10} + \tfrac1{20}$ 1'den küçük mü? Küçükse level'ler geometric olarak küçülür ve root baskın olur.

Çözümü göster

$s = \tfrac12 + \tfrac1{10} + \tfrac1{20} = \tfrac{10 + 2 + 1}{20} = \tfrac{13}{20} = 0.65 < 1$.

Level $t$'nin işi en fazla $0.65^t\, n$. Toplam $\le n \sum_{t \ge 0} 0.65^t = \frac{n}{0.35} \approx 2.86n$ ⇒ $O(n)$. Root tek başına $n$ iş yapıyor ⇒ $\Omega(n)$. Sonuç $\Theta(n)$ ⇒ (2).

Substitution ile de kısa: $T(k) \le ck$ varsayımıyla $T(n) \le 0.65cn + n \le cn \iff c \ge \tfrac{1}{0.35} = \tfrac{20}{7}$.

Kontrol: floor'larla python'da çalıştırınca $n = 10^7$'de $T(n)/n \approx 2.84$, sınır $20/7 \approx 2.86$'nın altında.

CS161 concept check: $T(n) = 2T(n/2) + 3T(n/3) + n^2$ için $O(n^2)$'yi substitution ile ispatlamak istiyoruz. Hangi guess işe yarar ve aralarında en tight olanı hangisidir?

Change of variables: √n'li recurrence'lar

Sezgi · kaç kez karekök?

$n = 65536 = 2^{16}$'dan başla, 2'ye inene kadar karekök al: $65536 \to 256 \to 16 \to 4 \to 2$. Dört adım. Exponent'e bak: $16 \to 8 \to 4 \to 2 \to 1$. Karekök exponent'i yarıya indiriyor, exponent de $\log n$. Adım sayısı $\log(\log n) = \log 16 = 4$.

Tarif: $m = \log n$
  1. $n = 2^m$ yaz. Böylece $\sqrt n = 2^{m/2}$, $n^{1/4} = 2^{m/4}$, $\log n = m$.
  2. Yeni fonksiyon tanımla: $S(m) = T(2^m)$. O zaman $T(\sqrt n) = S(m/2)$.
  3. $S$ için çıkan recurrence'ı Master theorem ile çöz.
  4. Geri dön: $m$ yerine $\log n$ yaz.
$T$$S(m) = T(2^m)$$S$ çözümü$T$ çözümüNereden
$T(\sqrt n) + 1$$S(m/2) + 1$$\Theta(\log m)$$\Theta(\log\log n)$2019-20 S2
$T(n^{1/4}) + 1$$S(m/4) + 1$$\Theta(\log m)$$\Theta(\log\log n)$2020-21 S3
$T(\sqrt n) + \log n$$S(m/2) + m$$\Theta(m)$$\Theta(\log n)$2023-24 S3(b)
$2T(\sqrt n) + \log n$$2S(m/2) + m$$\Theta(m\log m)$$\Theta(\log n\,\log\log n)$S2 §3
Tuzaklar
  • Geri dönmeyi unutma: $S(m) = \Theta(\log m)$ ise cevap $\Theta(\log\log n)$, $\Theta(\log n)$ değil.
  • Base case 2'de durur, 1'de değil: $\sqrt 1 = 1$, sonsuza kadar 1 kalır. Bu yüzden sorular $T(2) = 1$ veriyor.
  • $T(n^{1/4})$ cevabı da $\Theta(\log\log n)$: $\log_4\log n = \tfrac12\log\log n$, constant çarpan.
2019-20 vizesi S2 · çıkmış soru

"2. Solve recurrence asymptotically. $T(2) = 1$, $T(n) = T(n^{1/2}) + 1$, $n > 1$"

İpucu 1

Üç kez unroll et: $T(n) = T(n^{1/2}) + 1 = T(n^{1/4}) + 2 = T(n^{1/8}) + 3$. $k$ adım sonra?

İpucu 2

$n^{1/2^k} = 2$ olduğunda dur. İki tarafın log'unu al: $\frac{\log n}{2^k} = 1$.

Çözümü göster

Yol 1 (unrolling): $T(n) = T(n^{1/2^k}) + k$. $n^{1/2^k} = 2 \iff \frac{\log n}{2^k} = 1 \iff 2^k = \log n \iff k = \log\log n$. O zaman $T(n) = T(2) + \log\log n = 1 + \log\log n = \Theta(\log\log n)$.

Yol 2 (change of variables): $m = \log n$, $S(m) = T(2^m)$ ⇒ $S(m) = S(m/2) + 1$. $a = 1$, $b = 2$, $d = 0$, $a = b^d$ ⇒ $S(m) = \Theta(\log m)$ ⇒ $T(n) = \Theta(\log\log n)$.

Kontrol: $n = 65536$: $65536 \to 256 \to 16 \to 4 \to 2$, $T = 4 + 1 = 5 = \log\log n + 1$ ✓.

2020-21 vizesi S3

"$T(2) = 1$, $T(n) = T(n^{1/4}) + 1$. Solve this recurrence asymptotically. Show your work."

İpucu 1

Aynı kalıp: $k$ adım sonra $T(n^{1/4^k}) + k$.

İpucu 2

$\frac{\log n}{4^k} = 1$ ⇒ $k = \log_4\log n$. Log base'ini değiştirmek sadece constant bir çarpan getirir.

Çözümü göster

$T(n) = T(n^{1/4}) + 1 = T(n^{1/16}) + 2 = \dots = T(n^{1/4^k}) + k$. $n^{1/4^k} = 2 \iff 4^k = \log n \iff k = \log_4\log n = \tfrac12\log\log n$. $T(n) = 1 + \tfrac12\log\log n = \Theta(\log\log n)$.

Change of variables ile: $S(m) = S(m/4) + 1$, $a = 1 = 4^0$ ⇒ $\Theta(\log m) = \Theta(\log\log n)$.

Kontrol: $n = 2^{16}$: $65536 \to 16 \to 2$, $T = 3 = \tfrac12 \cdot 4 + 1$ ✓. Altungöz'ün cevaplı kâğıdındaki sonuç da $\Theta(\log\log n)$.

2023-24 vizesi S3(b), 5. recurrence · çıkmış soru

"For each recurrence, choose the expression (1)-(5) below which most accurately describes it. […] Assume that $T(1) = O(1)$ and don't worry about floors and ceilings.

(1) $\theta(\log n)$ (2) $\theta(n)$ (3) $\theta(n\log n)$ (4) $\theta(n^{\log_2 3})$ (5) $\theta(n^3)$

  • $T(n) = T(n^{1/2}) + \log n$ (Hint: Define $S(n) = T(2^n)$ for all $n$. Then, $S(n) = T(2^n) = T(\sqrt{2^n}) + \log 2^n = T(2^{n/2}) + n = S(n/2) + n$. Use the Master Theorem.)"

(sorunun bu bölümle ilgili kısmı; tamamı Bölüm 4'te)

İpucu 1

Soru change of variables'ı kendisi yapmış: $S(n) = S(n/2) + n$. Bu recurrence'ta $a$, $b$, $d$ kaç?

İpucu 2

$S$'yi çözdükten sonra geri dön: $T(n) = S(\log n)$. Seçenekleri $T$ için veriyorlar, $S$ için değil.

Çözümü göster

Hint'teki $n$ aslında bizim $m = \log n$'imiz: $S(m) = T(2^m)$, $S(m) = S(m/2) + m$.

$a = 1$, $b = 2$, $d = 1$, $b^d = 2 > 1$ ⇒ root-heavy ⇒ $S(m) = \Theta(m)$.

Geri dön: $T(n) = S(\log n) = \Theta(\log n)$ ⇒ (1).

Sezgi: karekök alındıkça $\log n$ term'leri $\log n,\ \tfrac12\log n,\ \tfrac14\log n, \dots$ diye yarıya iniyor. Bu geometric bir toplam, ilk term baskın: $\le 2\log n$.

Kontrol: $T(2) = 1$ ve $n = 2^{2^k}$ için tam değer $T(n) = 2\log n - 1$.

$T(n) = T(\sqrt n) + \log n$, $T(2) = 1$. $S(m) = T(2^m)$ ile hangisi çıkar?

Sınav provası: tipini tanı

2023-24 vizesi S3(b) nerede?

Bu sorunun beş recurrence'ı, her biri kendi yöntemini anlatan bölüme kondu: 1. ve 2. recurrence Bölüm 4'te (Master theorem), 3. Bölüm 6'da ($T(n-1)$), 4. Bölüm 7'de (unequal split), 5. Bölüm 8'de (change of variables). Sınavda beşi aynı kâğıtta, karışık sırayla gelir. Bu yüzden asıl beceri, her recurrence'a bakınca hangi yöntemi isteyeceğini tanımak. (3) $\Theta(n\log n)$ seçeneği hiçbirine uymuyor, çeldirici olarak konmuş.

HW2 S3(a) · dene

Arkadaşın MergeSort'un array'i üçe bölen bir versiyonunu yazmış (MergesortThirds: her biri $n/3$ size'ında üç parça, ardından linear time'da merge) ve bunun asymptotically daha hızlı olduğunu söylüyor. Haklı mı?

İpucu 1

Recurrence: kaç call, hangi size, merge ne kadar sürüyor?

İpucu 2

$a$ ve $b^d$ yine eşit mi? Değişen sadece log'un base'i mi?

Çözümü göster

$T(n) = 3T(n/3) + O(n)$: $a = 3 = 3^1 = b^d$ ⇒ $\Theta(n\log n)$. Log'un base'i değişir, $\log_3 n$ çıkar ama $\log_3 n = \log_2 n / \log_2 3$, aradaki fark constant bir çarpan. Asymptotically daha hızlı değil.

Çıkmışlar ve ödevler
  • 2023-24 S3(b): beş recurrence, seçenekli (Bölüm 4, 6, 7, 8). S3(d): Allie ve Brandon, sözel tanımdan recurrence (Bölüm 4).
  • 2019-20 S2 ve 2020-21 S3: $T(\sqrt n) + 1$, $T(n^{1/4}) + 1$ (Bölüm 8).
  • 2019-20 çözüm seti (UNM CS362) S1(d), S1(e): $8T(n/2) + \sqrt n$ (Bölüm 4), $T(n-1) + 1$ (Bölüm 6).
  • Pratik vize S2: "Hint: divide-and-conquer" ile average case'te $O(n)$ çalışan bir algoritma. Algoritmayı tasarladıktan sonra recurrence (expectation'da, iyi bir split ile) $T(n) = T(n/2) + O(n)$ biçiminde olur, Master theorem ile $O(n)$.
  • Sample 1 S1 ve S4: local minimum ve Fragment 3; çözümü kendin yaz.
  • HW2: 1.1, 1.2 (Bölüm 4), 3(a) (yukarıda), 4(b) $a^b$'yi $O(\log b)$ multiplication ile hesapla ($T(b) = T(b/2) + O(1)$), 5(f) quagga: $T(n) \le T(n/2) + n/2$ ⇒ $O(n)$.

Son kontrol

Kâğıt kalemle çöz, sonra cevaba bak.

Sadece $T(n) \le 2T(n/2) + n$ biliniyor. Ne söyleyebilirsin?

$T(n) = 2T(n/2) + n\log n$?

$T(n) = T(n/3) + T(n/2) + n$?

$T(n) = 2T(n-1) + 1$, $T(1) = 1$?

$T(n) = 8T(n/2) + n^3$?