Sunuyu indir
Sunum yükleniyor. Lütfen bekleyiniz
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)
Benzer bir sunumlar
© 2024 SlidePlayer.biz.tr Inc.
All rights reserved.