Professional Documents
Culture Documents
ALGORİTMA ANALİZİ
VERİ YAPILARI VE UYGULAMALARI DERSİ
1
Tasarım
divide&conquer, greedy, dynamic programming
Doğrulama
Doğru olup olmadığını
Analiz
Algoritma özelliklerini belirle
Uygula (Implementation)
Test
Mümkün olan tüm durumlar için kontrol et
1
Algoritma Analizi
3
Algoritma Analizi
4
2
Algoritma Performansı
5
Alan (Space)
Veri yapıları yer kaplar.
Ne tür veri yapıları kullanılabilir?
Veri yapılarının seçimi çalışma zamanını nasıl etkiler?
Analiz ile
Algoritmanın özellikleri nelerdir?
Zaman, hafıza vb.
Nasıl karşılaştırılır?
Her zaman tam olarak değil
Daha iyisini yapabilir miyiz?
Zor !
3
Algoritma Analizi
7
Algoritmaların Analizi
8
4
Algoritmayı nasıl analiz ederiz?
9
10
5
Yürütme Zamanı Analizi
11
Algoritma 1, T1(N)=1000N
Algoritma 2, T2(N)=N2
11
N T1 T2
10 10-2 sec 10-4 sec
100 10-1 sec 10-2 sec
1000 1 sec 1 sec
10000 10 sec 100 sec
100000 100 sec 10000 sec
12
6
Yürütme (Çalışma) Zamanı Analizi
13
14
7
Aritmetik Ortalama için T(n) Hesabı
15
15
16
8
En Küçük Eleman Bulma için T(n)
17
Hesabı
Temel Hesap Birimi Birim Zaman Frekans(Tekrar) Toplam
(Unit Time) (Frequency) (Total)
float bulEnKucuk(float A[]) { - - -
float enkucuk; - - -
int k ; - - -
1- enkucuk=A[0]; 1 1 1
2- for(k=1;k<n;k++) 1,1,1 1, n, n-1 2n
3- if (A[k]<enkucuk) 1 n-1 n-1
4- enkucuk=A[k]; 1 n-1 n-1
5- return enkucuk; 1 1 1
} - - -
T(n)=4n
17
18
9
Algoritma Analizi
19
19
Analiz
20
20
10
Çalışma Zamanı
21
21
Karmaşıklık
22
22
11
Karmaşıklık (Complexity)
23
23
24
12
Karmaşıklık (Complexity)
25
25
Kaynaklar
26
26
13