Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

İleri Algoritma Analizi

Benzer bir sunumlar


... konulu sunumlar: "İleri Algoritma Analizi"— Sunum transkripti:

1 İleri Algoritma Analizi
Ders4: İteratif algoritmaların işlem zamanı analizi Prof. Dr. Şahin EMRAH İleri Algoritma Analizi

2 Introduction to Algorithms (2nd edition)
by Cormen, Leiserson, Rivest & Stein Prof. Dr. Şahin EMRAH İleri Algoritma Analizi

3 Seçmeli sıralama algoritması
Dizinin minimum elemanını bul. Dizinin ilk elemanı ile minimum elemanın yerini değiştir. İlk eleman dışındaki tüm elemanlara aynı işlemi tekrar tekrar uygula.

4 Sözde kod n-1 iterasyon for i←1 to n-1 for j← i+1 to n n-i iterasyon
if A[i] > A[j] then A[i]↔A[j] n-i iterasyon

5 İşlem zamanı analizi i=1 için n-1, i=2 için n-2, … , i=n-1 için 1 karşılaştırma yapılır.

6 Bubble Sort (Kabarcık Sıralama)
Dizinin baştan sona ardışık 2 terimini karşılaştır. Sırası düzgün olmayan (küçük solda, büyük sağda değilse) ikililerin yerlerini değiştir. İlk 2 adımı n-1 defa tekrar et (Her tekrara bir iterasyon denir). İlk iterasyondan sonra en büyük eleman dizinin en sonunda olacaktır. Bir iterasyonda hiç yerdeğişme olmazsa sıralanmış olur ve işlem durdurulabilir.

7 Bubble Sort: Sözde kod En kötü durum n-1 iterasyon for i←1 to n-1
Switch←False for j←1 to n-i if A[j] > A[j+1] then A[j] ↔A[j+1] Switch = True if Not Switch then break n-i iterasyon

8 Bubble Sort Analizi Seçmeli sıralamada olduğu gibi:

9 Copyright © The MIT press

10 Copyright © MIT Press,. Permission required for reproduction or display.

11 Eklemeli Sıralama çalışma süresi
n n T(n) = c1n + c2(n-1) + c4(n-1) + c5 Σ tj + c6 Σ(tj -1) j=2 j=2 n + c7 Σ (tj – 1) + c8 (n-1). j=2 *tj sayısı 5. satırdaki while döngüsünün j için kaç defa çalıştığını göstermektedir.

12 En iyi durum Dizi sıralanmış verilmişse (artan sıra ile)
T(n) = c1n + c2(n-1) + c4(n-1) + c5(n-1) +c8(n-1)

13 Σ j = (n (n + 1) / 2) – 1 Σ ( j - 1) = n (n - 1) / 2 En kötü durum
Dizi ters sıralı verilmişse (azalan sıra ile) n Σ j = (n (n + 1) / 2) – 1 j = 2 Σ ( j - 1) = n (n - 1) / 2

14 En kötü durum T(n) = c1n + c2(n-1) + c4(n-1) +
c5((n (n+1) /2)-1) + c6(n(n-1)/2) + c7(n(n-1)/2)+ c8(n-1) = ((c5/2)+(c6/2)+(c7/2) n2 + (c1+c2+c4+ (c5/2)-(c6/2)-(c7/2)+c8) n – (c2+c4+c5+c8). a n2 + bn + c ( n in 2. dereceden fonksiyonudur)

15 Insertion Sort: Ortalama işlem zamanı analizi
Varsayım: Her i için i. Sayı sıralanmış i-1 sayıdan oluşan diziye eklendiğinde var olan i yerden her birine gelme olasılığı eşit olsun. Tam olarak i yer var, olasılıklar da eşit ise tüm olasılıklar 1/i olur. Her yer değişme için bir karşılaştırma gerekir.

16 Insertion Sort (Ortalama durum)
Sayının k-1 pozisyon yer atlaması için k karşılaştıma gerekir. İstisna: İlk ve 2. pozisyona gelmesi için i-1 karşılaştırma gereklidir. Pozisyon 1 2 3 ... i-2 i-1 i ... ... i-1 i-1 i-2 3 2 1 Bu pozisyona gelmesi için gerekli karşılaştırmalar.

17 Insertion Sort (Ortalama durum)
Ortalama karşılaştırma sayısı Çözüm

18 Insertion Sort (Ortalama durum)
Toplam ortalama:

19 Soru: Aşağıda sözde kodu verilen algoritmanın işlem zamanını hesaplayınız: i←n count← while(i>0) for j←0 to i count←count i←floor(i/2)

20 Çözüm: Hesaplamayı kolay yapabilmek n=2k olduğunu varsayalım
Çözüm: Hesaplamayı kolay yapabilmek n=2k olduğunu varsayalım. i=n için for döngüsü n defa, i=n/2 için for döngüsü n/2 defa, i=n/4 için for döngüsü n/4 defa,…i=1 için for döngüsü 1 defa çalışacaktır. Yani T(n)=2k+2k-1+…1=2k+1-1=2n-1=Ɵ(n)

21

22

23

24


"İleri Algoritma Analizi" indir ppt

Benzer bir sunumlar


Google Reklamları