Algoritma
Seçme Kriterleri
1. Doğruluk
2. Yapılan İş Miktarı
3. Kullanılan Hafıza
4. Basitlik ve Açıklık
Asimptotik Notasyon (Asymptotic Notation)
Uygulamalarda iki fonksiyon boyutlarını karşılaştırmak için kullanılır. Gösterimler tanımlayan fonksiyon ve işlevleri belirlenmiş kümesi arasında farklı oran büyüme ilişkileri açıklar.
Uygulamalarda iki fonksiyon boyutlarını karşılaştırmak için kullanılır. Gösterimler tanımlayan fonksiyon ve işlevleri belirlenmiş kümesi arasında farklı oran büyüme ilişkileri açıklar.
Big Theta Q Notasyonu
Q(g(n)) = {
f(n) : $ pozitif değer c1, c2, ve n0, öyle ki "n ³ n0,
0 £ c1g(n) £ f(n) £ c2g(n)
}
f(n) Î Q (g(n))
f(n) = Q (g(n))
Egzersiz:
n2/2-2n=Q(n2) c1, c2 ve n0 değerlerini nedir?
0 £ c1n2 £ n2/2-2n £ c2n2
"n ³ n0,
0 değerini sağladığı için dikkate alınmaz.
Eşitsizliğin her tarafı n2’ ye bölünür.
c1 £ 1/2-2/n £ c2
lim 1/2-2/n = 1/2 fonksiyon sonsuza gittiğinde üst sınır yani c2 1/2 olacaktır.
n®¥
f(n)
fonksiyonunu alttan sınırlandırmak için n değerine şartları sağlayan değerler verilir.
n
|
1/2-2/n
|
c1
|
1
|
-3/2
|
Nonpositive
|
2
|
-1/2
|
Nonpositive
|
3
|
-1/6
|
Nonpositive
|
4
|
0
|
Nonpositive
|
5
|
1/10
|
1/10
|
Big O Notasyonu
O(g(n)) = {
f(n) : $ pozitif değer c ve n0, öyle ki "n ³ n0,
0 £ f(n) £ cg(n)
}
f(n) = Q (g(n)) → f(n) = O(g(n))
Q (g(n))
Ì O(g(n))
Egzersiz:
2n2=O(n3) c ve n0 değerlerini nedir?
0 £ f(n) £ cg(n)
0 £ 2n2 £ cn3
0 değerini sağladığı için dikkate alınmaz. Eşitsizliğin
her tarafı n2’ ye bölünür.
2/n £ c
n
|
2/n
|
c
|
3
|
0.6
|
Nonpositive
|
2
|
1
|
2
|
Big Omega W Notasyonu
W (g(n)) = {
f(n) : $ pozitif değer c ve n0, öyle ki "n ³ n0,
0 £ cg(n) £ f(n)
}
f(n) = Q (g(n)) → f(n) = W (g(n))
Q (g(n))
Ì W (g(n))
Egzersiz:
sqrt(n)= W(logn) c ve n0 değerlerini
nedir?
0 £ cg(n) £ f(n) "n ³ n0,
0 £ clogn £
0 değerini sağladığı için dikkate alınmaz.
n
|
c
|
|
1
|
undefined
|
undefined
|
2
|
1.4142
|
1
|
Teorem:
g(n) ve f(n) iki fonksiyon olsun.
f(n) = Q(g(n))
f(n) = O(g(n)) and f(n)
= W(g(n))
Q(g(n)) = O(g(n)) ∩
W(g(n))
Çalışma Zamanları
O(f(n)) worst-case çalışma zamanı → O(f(n)) her girişin çalışma
zamanına bağlı
Q (f(n)) worst-case çalışma zamanı → Q (f(n)) her girişin çalışma zamanına
bağlı
Insertion Sort algortiması ile sıralama en kötü durumda Q(n2) ya da O(n2)'dir. Herhangi bir sıralama algoritması sıralama W(n)'dir, Aslında her gelen öğenin sırasına bağlıdır. Merge Sort ile sıralama en kötü durumda Q(nlogn)'dir.
Little o Notasyonu
o(g(n)) = {
f(n): " c > 0, $ n0 > 0 öyle ki " n ³ n0,
0 £ f(n) < cg(n)
}
lim [f(n) / g(n)] = 0
n®¥
g (n), f(n) için bir üst sınırdır.
Little omega w Notasyonu
w(g(n)) = {
f(n): " c > 0, $ n0 > 0 öyle ki " n ³ n0,
0 £ cg(n) < f(n)
}
lim [f(n) / g(n)] = ¥.
n®¥
g (n), f (n) için bir alt sınırdır.
Fonksiyonlarının
Karşılaştırılması
f « g » a « b olmak üzere:
f (n) = O(g(n)) » a £ b
f (n) = W (g(n)) » a ³ b
f (n) = Q (g(n)) » a = b
f (n) = o(g(n)) » a < b
f (n) = w(g(n)) » a > b
Fonksiyon
Limitleri
lim [f(n) / g(n)] = 0 → f(n)
Î o(g(n))
n®¥
lim [f(n) / g(n)] < ¥ → f(n) Î O(g(n))
n®¥
0 <
lim [f(n)
/ g(n)] < ¥ → f(n) Î Q(g(n))
n®¥
0 <
lim [f(n)
/ g(n)] → f(n) Î W(g(n))
n®¥
lim [f(n) / g(n)] = ¥ → f(n) Î w(g(n))
n®¥
lim [f(n) / g(n)] undefined
n®¥
Notasyon Özellikleri
Geçişlilik Özelliği
f(n) = Q (g(n)) & g(n) = Q (h(n)) → f(n) = Q (h(n))
f(n) = O(g(n)) & g(n) = O(h(n)) → f(n) = O(h(n))
f(n) = W (g(n)) & g(n) = W (h(n)) → f(n) = W (h(n))
f(n) = o (g(n)) & g(n) = o (h(n)) → f(n) = o (h(n))
f(n) = w(g(n)) & g(n) = w(h(n)) → f(n) = w(h(n))
Dönüşümlülük Özelliği
f(n) = Q (f(n))
f(n) =
O(f(n))
f(n) = W (f(n))
Simetri
Özelliği
f(n) = Q (g(n)) → g(n) = Q (f(n))
Tamamlama Özelliği
f(n) = O(g(n)) → g(n) = W (f(n))
f(n) = o(g(n)) → g(n) = w((f(n))
Bir sonraki yazımda görüşmek üzere...