If you can't read please download the document
Upload
voque
View
243
Download
4
Embed Size (px)
Citation preview
ALGORTMA ANALZCumhuriyet niversitesi
Bilgisayar Mhendislii Blm
Yrtme Zaman (Running Time)
Algoritmann belirli bir ileme veya eyleme ka
kez gereksinim duyulduunu gsteren bantdr
ve T(n) ile gsterilir.
Temel hesap birimi olarak, programlama
dilindeki deyimler seilebildii gibi dng says,
toplama ilemi says, atama says, dosyaya
erime says gibi iler de temel hesap birimi
olarak seilebilir.
Algoritma Analizi - Asimptotik
2
Yrtme Zaman (Running Time)
Yrtme zaman bants fiziksel geree yakn
bir sonu verir, ancak sapmalar da olabilir.
Kabul edilen temel hesap birimi tm hesaplar
iin ayn olmayabilir.
R: Bir tam say sayacn bir artrlmasyla iki
gerel saynn arpm maliyeti farkl olabilir veya
iki tam sayy karlatrmak ile iki diziyi
karlatrma maliyetleri farkl olur.
Algoritma Analizi - Asimptotik
3
Yrtme Zaman (Running Time)
R: Aadaki kodun yrtme zaman bantsn belirleyiniz.float bulorta( float A[], int n)
{
float ortalama, toplam=0;
int k;
for (k=0; k
Yrtme Zaman (Running Time)
R: Aadaki kodun yrtme zaman bantsn belirleyiniz.void toplamMatris(A, B, C)
int A[n][m], B[n][m], C[n][m];
{
int i,j;
for (i=0; i
Karmaklk
Algoritmalar karlatrabilmek iin bir
algoritmann zorluk derecesi lmne
Computational Complexity denir.
Computational complexity bir algoritmann
gerekletirilmesi iin gereken maliyeti veya
abay ifade eder. Maliyet veya aba zaman
(time) ve kullanlan alan (space) ile ifade edilir.
Algoritma Analizi - Asimptotik
6
Asimptotik Karmaklk
Algoritmalarda t (sre) ve n (giri boyutu) arasndaki iliki
ou zaman ok karmaktr.
Fonksiyon ierisindeki nemsiz ksmlar ve katsaylar atlarak
basitletirilir ve gerek fonksiyona gre yaklak bir deer
bulunur.
Elde edilen bu yeni etkinlik lmne Asymptotic
Complexity denir.
Genellikle giriin bymesine bal olarak fonksiyonun
bymesinde en byk etkiye sahip olan parametre alnr.
Algoritma Analizi - Asimptotik
7
Asimptotik Karmaklk
n t(n)=60n2+5n+1 60n2
10 6.051 6.000
100 600.501 600.000
1.000 60.005.001 60.000.000
10.000 6.000.050.001 6.000.000.000
Algoritma Analizi - Asimptotik
8
Asimptotik Karmaklk
Algoritma Analizi - Asimptotik
9
Asimptotik Analiz
Ama: detaylardan kurtularak alma sresi analizini basitletirmek
Saylar iin rounding ilemi:1,000,001 1,000,000
Fonksiyonlar iin rounding ilemi: 3n2 n2
Niteliini belirlemek (Capturing the essence): belirlenen limit ierisinde giriin boyutuna gre algoritmann alma sresinin nasl arttnn bulunmas
Algoritma Analizi - Asimptotik
10
Asimptotik Analiz
Algoritmalarn best, worst ve average case alma sreleri bir fonksiyonla
ifade edilebilir.
Ancak kesin srenin hesaplanmas olduka zor ve karmaktr.
Algoritma Analizi - Asimptotik
11
Asimptotik Notasyonlar
big-O O-ifadesi
asymptotic upper bound
f(n) = O(g(n)), eer sabit bir c ve n0 deeri iin
f(n) c.g(n) btn n n0deerleri iin doruysa
f(n) ve g(n) pozitif deere sahip fonksiyonlardr.
worst-case analiz iin kullanlr
Algoritma Analizi - Asimptotik
12
Asimptotik Notasyonlar Big O
Algoritma Analizi - Asimptotik
13
Asimptotik Notasyonlar Big O
rnek:
3n2+2n+5 = O(n2) olduunu gsteriniz.
10 n2 = 3n2 + 2n2 + 5n2
3n2 + 2n + 5 , n 1
c = 10, n0 = 1
Algoritma Analizi - Asimptotik
14
Asimptotik Notasyonlar Big O
O-ifadesi iin genellikle en basit forml kullanlr.
rnek:
3n2+2n+5 = O(n2)
Aadaki rneklerde dorudur ancak genellikle kullanlmazlar.
3n2+2n+5 = O(3n2+2n+5)
3n2+2n+5 = O(n2+n)
3n2+2n+5 = O(3n2)
Algoritma Analizi - Asimptotik
15
Asimptotik Notasyonlar Big W
Big-Omega W ifadesi
Asymptotic Lower Bound
f(n) = W (g(n)), eer sabit bir c ve n0 deeri iin
c.g(n) f(n) btn n n0
deerleri iin doruysa
best-case alma sresi veya lower bound tanmlamasnda kullanlr.
Algoritma Analizi - Asimptotik
16
Asimptotik Notasyonlar Big W
Algoritma Analizi - Asimptotik
17
Asimptotik Notasyonlar Big W
Basit kural: Kk dereceden terimler ve sabitler
atlr.
50 n log n ifadesi O(n log n) eklinde gsterilir.
7n - 3 ifadesi O(n)
8n2 log n + 5n2 + n ifadesi O(n2 log n) eklinde ifade
edilir.
Algoritma Analizi - Asimptotik
18
Asimptotik Notasyonlar Big-
Big-Theta fadesi
asymptotic tight bound
f(n) = (g(n)), eer sabit
c1, c1 , ve n0 , deerleri iin
c1 g(n) f(n) c2 g(n)
btn n n0 deerleri iin
doruysa.
Algoritma Analizi - Asimptotik
19
Asimptotik Notasyonlar Little-o
"Little-o" ifadesi f(n)=o(g(n)) rn: 2n = o(n2)
Her c>0 iin, bir n0 deeri vardr ve
0 f(n) c . g(n)
ifadesi btn n n0 deerleri iin dorudur.
alma srelerinin karlatrlmas iin kullanlr. Eer
f(n)=o(g(n)), ise g(n), f(n) fonksiyonundan daha
arlkldr (dominates).
Algoritma Analizi - Asimptotik
20
Asimptotik Notasyonlar - Little-
"Little-omega" ifadesi f(n)= (g(n)) rn: n2/2 =
(n)
Her c>0 iin, bir n0 deeri vardr ve f(n) > c.g(n)
0 ifadesi btn n n0 deerleri iin dorudur.
alma srelerinin karlatrlmas iin kullanlr.
Eer f(n)= (g(n)), ise f(n), g(n) fonksiyonundan
daha arlkldr. (dominates).
Algoritma Analizi - Asimptotik
21
Asimptotik Notasyonlar
f(n) = O(g(n)) gerekte f(n) O(g(n)) anlamndadr.
Algoritma Analizi - Asimptotik
22