set belirtilir g(n) in f(n) icin asymptotically tight bound oldugu soylenir. 2.3.
Algoritma Analizi. Ornek. ○ 10n2 - 3n = Θ(n2). ○ n0, c1, ve c2 sabitlerini
belirlememiz.
Asymptotic Notation l l l l l
Θ-notation
Θ, O, Ω , o, ω Algorithmalarin running time (calisma zamani) ifade etmekte kullanilirlar. Kesin calisma zamanini soylemek yerine Θ(n2) gibi notasyon kullailir Domain i dogal sayilar olan fonksiyonlar icin tanimlanmislardir Fonksiyonlardan olusan setleri tanimlarlar,ve pratikte iki fonksiyonu kiyaslamak icin kullanilirlar Algoritma Analizi
Verilen bir fonksiyon g(n) icin, Θ(g(n)) ile fonksiyonlardan olusan bir set belirtilir
Θ(g(n)) = {f(n): oyleki asagidaki kosullari saglayan positive c1 , c2 and n0 sabitleri mevcut, 0 ≤ c1 g(n) ≤ f(n) ≤ c2 g(n), her n ≥ n0 icin } g(n) in f(n) icin asymptotically tight bound oldugu soylenir
2.1
Algoritma Analizi
Ornek
2.2
O-notation
10n2 - 3n = Θ(n2) l n0, c1, ve c2 sabitlerini belirlememiz gerekir l
Verilen bir foksiyon g(n) icin, O(g(n)) elemanlari fonksiyon olan bir set i ifade eder.
O(g(n)) = {f(n): oyleki asagidaki kosulalri saglayan positive c ve n 0 sabitlei mevcut, 0 ≤ f(n) ≤ cg(n) her n ≥ n0 icin } g(n) in f(n) icin bir asymptotic upper bound oldugu soylenir
Algoritma Analizi
2.3
Ω-notation Verilen bir g(n) fonksiyonu icin, Ω (g(n)) ile elemanlari fonksiyon olan bir set ifade edilir. Ω (g(n)) = {f(n): oyleki asagidaki kosullari saglayn positive c ve n0 sabitleri mevcut, 0 ≤ cg(n) ≤ f(n) for all n ≥ n0 } g(n) nin f(n) icin bir asymptotic lower bound oldugu Algoritma Analizi 2.5 soylenir
Algoritma Analizi
2.4
Θ, Ω, O Arasindaki Iliskiler l
l
Verilen iki fonksiyon g(n) ve f(n) icin , f(n) = Θ(g(n)) if and only if (ancak ve ancak) f(n) = O( g(n)) ve f( n) = Ω (g(n)).
Yani, Θ(g(n)) = O(g(n)) ∩ Ω(g(n))
Algoritma Analizi
2.6
Running Times
Ornek
l
“Eger running time O(f(n))” ⇒ Worst case O(f(n)) dir.
l
Insertion sort nin worst case running time i Θ(n2) , dolayisiyle bu O(n2 ) dir.
l
“Eger running time Ω(f(n))” ⇒ Best case Ω(f(n)) dir.
l
Herhangi bir sort algoritmasi siralanacak her bir item a bakmak zorunda, dolayisiyle sorting Ω (n) dir
l
Gercekte, merge sort kullanilarak, worst case durumunda sorting Θ(n lg n) dir.
Algoritma Analizi
2.7
Algoritma Analizi
Asymptotic Notation in Equations
o-notation
l
Lower-order terimleri iceren ifadeleri yerdegistirmek icin kullanilir
l
Ornegin, 4n3 + 3n2 + 2n + 1 = 4n3 + 3n2 + Θ(n) = 4n3 + Θ(n2 ) = Θ(n3 )
l
Θ(f(n)) anonymous function bir fonksiyonu ifade eder. g(n) ∈ Θ(f(n))
Verilen bir fonksiyon g(n) icin, o(g(n)) ile bir fonksiyonlar kumesi ifade edilir, soyleki o(g(n)) = {f(n): bir positive constant c > 0 icin, n0 > 0 olan bir sabit var oyleki 0 ≤ f(n) < cg(n), her n ≥ n0 } f(n) g(n) e kiyasla n sonsuza (infinity) yaklasirken onemsiz hale gelir lim [f(n) / g(n)] = 0
– Yukaridaki ornekte, Θ(n2) 3n2 + 2 n + 1 i ifade eder
Algoritma Analizi
n→∞
2.9
Algoritma Analizi
2.10
Limits
ω-notation l
Verilen bir fonksiyon g(n) icin, ω (g(n)) ile bir fonlksiyonlar kumesi ifade edilir, soyleki
l
ω (g(n)) = {f(n): bir positive sabit c > 0 icin , n 0 > 0 olan bir sabit var oyleki 0 ≤ cg(n) < f(n), her n ≥ n0 } f(n) g(n) kiyasla n sonsuza yaklasirken gelisiguzel buyuk olur lim [f(n) / g(n)] = ∞ n→∞
2.11
lim [f(n) / g(n)] = 0 ⇒ f(n) ∈ ο(g(n))
n→∞
lim [f(n) / g(n)] < ∞ ⇒ f(n) ∈ Ο(g(n))
n→∞
l
0