İleri Algoritma Analizi

Slides:



Advertisements
Benzer bir sunumlar
Yığınlama Sıralaması (Heap Sort)
Advertisements

FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ
Karmaşıklık Giriş.
Karmaşıklık Giriş.
Yinelemeli Algoritma Analizi & Asimptotik Notasyon
Ayrık Yapılar Algoritma Analizi.
FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ
FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ
BPR152 ALGORİTMA VE PROGRAMLAMA - II
DÖNGÜLER For While Do While.
Kontrol Çevrimleri FOR WHILE DO-WHILE IF-ELSE SWITCH-CASE-DEFAULT
Bölüm 4 – Kontrol İfadeleri:1.kısım
Bölüm 2: Program Denetimi
Algoritmalar En kısa yollar I En kısa yolların özellikleri
Sorting Methods Basics of Sorting Elementary Sorting Algorithms
Karar ifadeleri ve Döngüler
Algoritmalar Ders 14 En Kısa Yollar II Bellman-Ford algoritması
DÖNGÜ İFADELERİ.
Algoritmalar DERS 4 Çabuk sıralama Böl ve fethet Bölüntüler
While Döngüsü Tekrarlama deyimidir. Bir küme ya da deyim while kullanılarak bir çok kez yinelenebilir. Yinelenmesi için koşul sınaması döngüye girilmeden.
BPR152 ALGORİTMA VE PROGRAMLAMA - II
Bölüm 2 – Kontrol Yapıları
Koşul İfadeleri ve Akış Kontrolü Yazdığımız uygulamanın hangi koşulda nasıl davranacağını belirterek bir akış kontrolü oluşturabilmek için koşul ifadelerini.
YMT219: Veri Yapıları Ders Saatleri: Pazartesi 9:15-12, 17:30-20:15
HIZLI SIRALAMA ALGORİTMALARI(QUICK SORT)
DÖNGÜLER.
4. KONTROL VE DÖNGÜ KOMUTLARI
Python Aslı Ergün.
C++ Ders Notları 4.Ders (Kontrol ve Döngüler)
Outline 4.1 Giriş 4.2 Algoritmalar 4.3 Pseudocode 4.4 Kontrol İfadeleri 4.5 if tek-seçimli ifadeler 4.6 if else seçimli ifadeler 4.7 while döngü ifadeleri.
DÖNGÜ DEYİMLERİ Programın belirli bir kesiminin birden fazla tekrarlanması işlemine DÖNGÜ denir. Bir değişken belirli bir değerden başlayıp, son değeri.
Bugünkü Konular Döngüler ve Akış Diyagramları C de Döngü Tanımlama
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
Algoritmalar ve Programlama I Ders 8:DİZİ (VEKTÖR) KAVRAMI
Sıralama. Sıralama, bir dizideki sayısal elemanların küçükten büyüğe veya büyükten küçüğe, sayısal olmayan bir dizideki elemanların ise A’ dan Z’ ye.
Chapter 7 Space and Time Tradeoffs Copyright © 2007 Pearson Addison-Wesley. All rights reserved.
Algoritma Analizi Algoritma Algoritma bir problemi çözmek için izlenen komutlar kümesidir. Verilen bir problemin birden fazla çözümü dolayısıyla.
BİLGİSAYAR PROGRAMLAMA Araş. Gör. Ahmet ARDAHANLI Kafkas Üniversitesi Mühendislik Fakültesi.
Bölüm10 İteratif İyileştirme Copyright © 2007 Pearson Addison-Wesley. All rights reserved.
PHP ve HTML İnternet Programlama - 2. Koşullu İfadeler ve Döngüler Döngü ya da çevirim diyebileceğimiz, belli şart ve koşullarda istenilen değerleri yapabilmemizi.
Algoritmalar II Ders 2 Dinamik Programlama Yöntemi.
Algoritmalar II Ders 5 Açgözlü Algoritmalar.
Algoritmalar II Ders 1: Alan zaman takası yöntemi.
Insertion Sort Fikir: Oyun kartlarını sıralamaya benzer.
Algoritmalar II Ders 7 Açgözlü Algoritmalar.
Algoritmalar II Ders 4 Dinamik Programlama Yöntemi.
Çizgeler Çizge G=(V,E), ikilisine denir, burada V sonlu bir kümedir, E ise bu kümenin elemanları arasında ikili bir bağıntıdır. V kümesine G çizgesinin.
İleri Algoritma Analizi
İleri Algoritma Analizi
İleri Algoritma Analizi
Algoritmalar II Ders 3 Dinamik Programlama Yöntemi.
İleri Algoritma Analizi
Prof. Dr. Şahin EMRAH Algoritmalar I
4- OPERATÖR – koşul - döngü Nesne Yönelimli Programlama - i
İleri Algoritma Analizi
İleri Algoritma Analizi
Chapter 6 Dönüştür ve Yönet (Transform-and-Conquer)
Chapter 3 Brute Force Copyright © 2007 Pearson Addison-Wesley. All rights reserved.
NİŞANTAŞI ÜNİVERSİTESİ
İleri Algoritma Analizi
Algoritmalar II Ders 3 Dinamik Programlama Yöntemi.
NİŞANTAŞI ÜNİVERSİTESİ
İleri Algoritma Analizi
İleri Algoritma Analizi
İleri Algoritma Analizi
Algoritmalar II Ders 2 Dinamik Programlama Yöntemi.
Rekürensler Rekürens aranan fonksiyonun ve onun daha önceki girişlerdeki değerinin bir arada bulunduğu denklem veya eşitsizliktir. Örneğin, MERGE-SORT.
Chapter 4 Divide-and-Conquer
Bölüm 5 Azalt ve yönet (Decrease-and-Conquer)
Introduction to Algorithms (2nd edition)
Sunum transkripti:

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

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

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.

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

İş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.

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.

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

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

Copyright © The MIT press

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

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.

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)

Σ 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

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)

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.

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.

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

Insertion Sort (Ortalama durum) Toplam ortalama:

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

Çö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)