More Related Content
PPT
PPT
PPTX
PPTX
PDF
PDF
CCI Media London inventory PDF
Why Logistics Company Should Partner With eTailing India? TXT
Examen 2° grado primer bimestre Viewers also liked
PPTX
PDF
PDF
Bluetooth Hacking: Cracking the PIN and Repairing Attack PDF
PDF
Sage 500 - sage intelligence tools PPT
η ελλαδα μια βολτα μέρος 1ο PPTX
Dyna Corp : Packaging Solution for eCommerce Companies PDF
eTailing India Chennai Conclave 2013 Part 3 PPTX
Boost Checkout Conversions at eTailing India Expo'17 PPT
dene/Sunumlar/cab_abst.ppt PPSX
PPT
PDF
Qlda 3-tuduychienluoc[easyvn.net] PDF
Module 6 marketing strategy ratan kk_masterclass on online marketing PPTX
dene/tiviace_english.pptx Similar to dene/ders1.ppt
PPT
109635565-1-algoritma-ve-veri-yapıları.ppt PPTX
Bloklamalı Akış Tipi Çizelgeleme Problemlerinde Toplam Akış Süresini Minimize... PPTX
PPT
Görsel c# ile windows programalama güz dönemi PPTX
Algoritmalarve programlamai ders_1 PPTX
PPTX
Yzm 2116 Bölüm 6 - Sıralama ve Arama PPTX
Ayrık yapılar algoritmalar PPTX
PPTX
PDF
Algoritma ve akış şemaları PPTX
Programlamaya Giriş ve Algoritma Kavramı PPTX
Algoritma - akış diyagramları - sözde kod PPTX
Programlamaya Giriş, Algoritma ve Akış Şeması Diyagramı PDF
Assembly Dili İle Binary Search Gerçekleştirimi DOC
PPTX
PDF
PDF
DOCX
More from Batın Düz
PPT
PPT
PPT
PPT
PPT
PPT
PPT
PPT
PPT
PPT
PPT
PPT
dene/Sunumlar/cab_abst.ppt PPT
dene/Sunumlar/cab_abst.ppt PPT
dene/Sunumlar/cab_abst.ppt PPTX
PDF
PDF
PPT
dene/TIVIACE_turkce03.ppt PPTX
dene/tiviace_english.pptx PDF
dene/ders1.ppt
- 1.
Algoritmalar
6.046J/18.401J
DERS 1
Algoritmaların
Çözümlemesi
•Araya yerleştirme sıralaması
•Asimptotik çözümleme
•Birleştirme sıralaması
•Yinelemeler
Prof. Charles E. Leiserson
Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson
- 2.
Kaynaklar
1.Bilgisayar Programlama veYazılım
Mühendisliğinde Veri Yapıları ve
Algoritmalar, Rıfat Çölkesen, 8. baskı, 2012.
2.Introduction to Algorithms,Thomas H.
Cormen, Charles E. Leiserson, Ronald L.
Rivest, Clifford Stein, 3rd Edition, 2009.
Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson
September 7, 2005 Introduction to Algorithms L1.2
- 3.
Algoritmaların çözümlemesi
Bilgisayar programperformansı ve kaynak
kullanımı konusunda teorik çalışmalar
SORU: Performanstan daha önemli ne vardır ?
• modülerlik • kullanıcı dostluğu
• doğruluk • programcı zamanı
• bakım kolaylığı • basitlik
• işlevsellik • genişletilebilirlik
• sağlamlık • güvenilirlik
Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson
September 7, 2005 Introduction to Algorithms L1.3
- 4.
Neden algoritmalar ve
performans ile uğraşırız?
• Algoritmalarla ölçeklenebilirlik anlaşılabilir.
• Performans genelde yapılabilir olanla
imkansızın arasındaki çizgiyi tanımlar.
• Algoritmik matematik program davranışlarını
açıklamak için ortak dil oluşturur.
• Performans bilgi işleme'nin para birimidir.
• Program performansından alınan dersler
diğer bilgi işleme kaynaklarına genellenebilir.
• Hız eğlencelidir!
Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson
September 7, 2005 Introduction to Algorithms L1.4
- 5.
Sıralama (sorting) problemi
Girdi:dizi < a1, a2, …, an > sayıları.
Çıktı: permütasyon < a'1, a'2, …, a'n >
öyle ki a'1 ≤ a'2 ≤ … ≤ a'n .
Örnek:
Girdi: 8 2 4 9 3 6
Çıktı: 2 3 4 6 8 9
Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson
September 7, 2005 Introduction to Algorithms L1.5
- 6.
Araya yerleştirme sıralaması(Insertion sort)
INSERTION-SORT (A, n) ⊳ A[1 . . n]
for j ← 2 to n
do key ← A[ j]
“pseudocode” i←j–1
( sözdekod, while i > 0 and A[i] > key
do A[i+1] ← A[i]
yalancıkod )
i←i–1
A[i+1] = key (anahtar)
Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson
September 7, 2005 Introduction to Algorithms L1.6
- 7.
Araya yerleştirme sıralaması(Insertion sort)
INSERTION-SORT (A, n) ⊳ A[1 . . n]
for j ← 2 to n
do key ← A[ j]
“pseudocode” i←j–1
( sözdekod, while i > 0 and A[i] > key
do A[i+1] ← A[i]
yalancıkod )
i←i–1
A[i+1] = key (anahtar)
1 i j n
A:
key (anahtar)
sorted (sıralı)
Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson
September 7, 2005 Introduction to Algorithms L1.7
- 8.
Araya yerleştirme sıralamasıörneği
8 2 4 9 3 6
Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson
September 7, 2005 Introduction to Algorithms L1.8
- 9.
Araya yerleştirme sıralamasıörneği
8 2 4 9 3 6
Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson
September 7, 2005 Introduction to Algorithms L1.9
- 10.
Araya yerleştirme sıralamasıörneği
8 2 4 9 3 6
2 8 4 9 3 6
Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson
September 7, 2005 Introduction to Algorithms L1.10
- 11.
Araya yerleştirme sıralamasıörneği
8 2 4 9 3 6
2 8 4 9 3 6
Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson
September 7, 2005 Introduction to Algorithms L1.11
- 12.
Araya yerleştirme sıralamasıörneği
8 2 4 9 3 6
2 8 4 9 3 6
2 4 8 9 3 6
Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson
September 7, 2005 Introduction to Algorithms L1.12
- 13.
Araya yerleştirme sıralamasıörneği
8 2 4 9 3 6
2 8 4 9 3 6
2 4 8 9 3 6
Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson
September 7, 2005 Introduction to Algorithms L1.13
- 14.
Araya yerleştirme sıralamasıörneği
8 2 4 9 3 6
2 8 4 9 3 6
2 4 8 9 3 6
2 4 8 9 3 6
Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson
September 7, 2005 Introduction to Algorithms L1.14
- 15.
Araya yerleştirme sıralamasıörneği
8 2 4 9 3 6
2 8 4 9 3 6
2 4 8 9 3 6
2 4 8 9 3 6
Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson
September 7, 2005 Introduction to Algorithms L1.15
- 16.
Araya yerleştirme sıralamasıörneği
8 2 4 9 3 6
2 8 4 9 3 6
2 4 8 9 3 6
2 4 8 9 3 6
2 3 4 8 9 6
Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson
September 7, 2005 Introduction to Algorithms L1.16
- 17.
Araya yerleştirme sıralamasıörneği
8 2 4 9 3 6
2 8 4 9 3 6
2 4 8 9 3 6
2 4 8 9 3 6
2 3 4 8 9 6
Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson
September 7, 2005 Introduction to Algorithms L1.17
- 18.
Araya yerleştirme sıralamasıörneği
8 2 4 9 3 6
2 8 4 9 3 6
2 4 8 9 3 6
2 4 8 9 3 6
2 3 4 8 9 6
2 3 4 6 8 9 (bitti)
Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson
September 7, 2005 Introduction to Algorithms L1.18
- 19.
Çalışma zamanı (Running
time)
• Çalışma zamanı girişe bağımlıdır: Önceden
sıralanmış bir diziyi sıralamak daha kolaydır.
• Çalışma zamanının girişin boyutuna göre
parametrelenmesi yararlıdır, çünkü kısa dizileri
sıralamak uzun dizilere oranla daha kolaydır.
• Genellikle, çalışma zamanında üst sınırları
ararız, çünkü herkes garantiden hoşlanır.
Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson
September 7, 2005 Introduction to Algorithms L1.19
- 20.
Çözümleme türleri
En kötü durum (Worst-case):
(genellikle)
•T(n) = n boyutlu bir girişte
algoritmanın maksimum süresi
Ortalama durum: (bazen)
•T(n) = n boyutlu her girişte algoritmanın
beklenen süresi.
•Girişlerin istatistiksel dağılımı için
varsayım gerekli.
En iyi durum: (gerçek dışı)
•Bir giriş yapısında hızlı çalışan yavaş bir
Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson
algoritma ile hile yapmak.
September 7, 2005 Introduction to Algorithms L1.20
- 21.
Makineden-bağımsız zaman
Araya yerleştirme sıralamasının en kötü zamanı nedir?
•Bilgisayarın hızına bağlıdır:
• bağıl ( rölatif ) zaman ( aynı makinede),
• mutlak (absolüt ) zaman (farklı makinelerde).
BÜYÜK FİKİR:
•Makineye bağımlı sabitleri görmezden gel.
•n → ∞ ' a yaklaştıkça, T(n)'nin büyümesine bak.
" Asimptotik Analiz"
Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson
September 7, 2005 Introduction to Algorithms L1.21
- 22.
Θ- notasyonu (notation)
Matematik:
Θ(g(n)) = { f (n) : Öyle c1, c2, n0 pozitif sabit sayıları
vardır ki tüm n ≥ n0} için 0 ≤ c1 g(n) ≤ f (n) ≤ c2 g(n).
Mühendislik:
•Düşük değerli terimleri at; ön sabitleri ihmal
et.
• Örnek: 3n3 + 90n2 – 5n + 6046 = Θ (n3)
Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson
September 7, 2005 Introduction to Algorithms L1.22
- 23.
Asimptotik performans
n yeterince büyürse, Θ(n2) algoritması
bir Θ(n3) algoritmasından her zaman daha
hızlıdır. •Öte yandan asimptotik açıdan
yavaş algoritmaları ihmal
etmemeliyiz.
•Gerçek dünyada tasarımın
mühendislik hedefleriyle
T(n) dikkatle dengelenmesi
gereklidir.
•Asimptotik analiz
düşüncemizi yapılandırmada
n n0 önemli bir araçtır.
Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson
September 7, 2005 Introduction to Algorithms L1.23
- 24.
Araya yerleştirme sıralamasıçözümlemesi
En kötü durum: Giriş tersten sıralıysa.
n
T ( n ) = ∑ Θ( j ) = Θ( n ) 2
[aritmetik seri]
j =2
Ortalama durum:Tüm permutasyonlar eşit olasılıklı.
n
T ( n ) = ∑ Θ ( j / 2) = Θ ( n ) 2
j =2
Araya yerleştirme sıralaması hızlı bir algoritma mıdır ?
•Küçük n değerleri için olabilir.
•Büyük n değerleri için asla!
Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson
September 7, 2005 Introduction to Algorithms L1.24
- 25.
Birleştirme sıralaması
BİRLEŞTİRME-SIRALAMASI A[1 . . n]
1. Eğer n = 1 ise, işlem bitti.
2. A[1... n / 2 ] ve A[ n / 2 + 1...n] ’yi
özyinelemeli sırala.
3. 2 sıralanmış listeyi “Birleştir”.
Anahtar altrutin: Birleştirme
Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson
September 7, 2005 Introduction to Algorithms L1.25
- 26.
Sıralı iki altdiziyibirleştirme
20 12
13 11
7 9
2 1
Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson
September 7, 2005 Introduction to Algorithms L1.26
- 27.
Sıralı iki altdiziyibirleştirme
20 12
13 11
7 9
2 1
1
Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson
September 7, 2005 Introduction to Algorithms L1.27
- 28.
Sıralı iki altdiziyibirleştirme
20 12 20 12
13 11 13 11
7 9 7 9
2 1 2
1
Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson
September 7, 2005 Introduction to Algorithms L1.28
- 29.
Sıralı iki altdiziyibirleştirme
20 12 20 12
13 11 13 11
7 9 7 9
2 1 2
1 2
Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson
September 7, 2005 Introduction to Algorithms L1.29
- 30.
Sıralı iki altdiziyibirleştirme
20 12 20 12 20 12
13 11 13 11 13 11
7 9 7 9 7 9
2 1 2
1 2
Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson
September 7, 2005 Introduction to Algorithms L1.30
- 31.
Sıralı iki altdiziyibirleştirme
20 12 20 12 20 12
13 11 13 11 13 11
7 9 7 9 7 9
2 1 2
1 2 7
Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson
September 7, 2005 Introduction to Algorithms L1.31
- 32.
Sıralı iki altdiziyibirleştirme
20 12 20 12 20 12 20 12
13 11 13 11 13 11 13 11
7 9 7 9 7 9 9
2 1 2
1 2 7
Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson
September 7, 2005 Introduction to Algorithms L1.32
- 33.
Sıralı iki altdiziyibirleştirme
20 12 20 12 20 12 20 12
13 11 13 11 13 11 13 11
7 9 7 9 7 9 9
2 1 2
1 2 7 9
Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson
September 7, 2005 Introduction to Algorithms L1.33
- 34.
Sıralı iki altdiziyibirleştirme
20 12 20 12 20 12 20 12 20 12
13 11 13 11 13 11 13 11 13 11
7 9 7 9 7 9 9
2 1 2
1 2 7 9
Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson
September 7, 2005 Introduction to Algorithms L1.34
- 35.
Sıralı iki altdiziyibirleştirme
20 12 20 12 20 12 20 12 20 12
13 11 13 11 13 11 13 11 13 11
7 9 7 9 7 9 9
2 1 2
1 2 7 9 11
Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson
September 7, 2005 Introduction to Algorithms L1.35
- 36.
Sıralı iki altdiziyibirleştirme
20 12 20 12 20 12 20 12 20 12 20 12
13 11 13 11 13 11 13 11 13 11 13
7 9 7 9 7 9 9
2 1 2
1 2 7 9 11
Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson
September 7, 2005 Introduction to Algorithms L1.36
- 37.
Sıralı iki altdiziyibirleştirme
20 12 20 12 20 12 20 12 20 12 20 12
13 11 13 11 13 11 13 11 13 11 13
7 9 7 9 7 9 9
2 1 2
1 2 7 9 11 12
Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson
September 7, 2005 Introduction to Algorithms L1.37
- 38.
Sıralı iki altdiziyibirleştirme
20 12 20 12 20 12 20 12 20 12 20 12
13 11 13 11 13 11 13 11 13 11 13
7 9 7 9 7 9 9
2 1 2
1 2 7 9 11 12
Süre = Θ(n), toplam n elemanı
birleştirmek için (doğrusal zaman).
Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson
September 7, 2005 Introduction to Algorithms L1.38
- 39.
Birleştirme sıralamasının çözümlenmesi
T(n) BİRLEŞTİRME-SIRALAMASI A[1 . . n]
Θ(1) 1.Eğer n = 1'se, bitir.
2T(n/2) 2.Yinelemeli olarak
A[1... n / 2 ] ve A[ n / 2 + 1...n] 'yi
Θ(n)
sırala.
Özensizlik: 3. 2 sıralı listeyi “Birleştir”
olması
gerekir, ama asimptotik açıdan bu önemli değildir.
Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson
September 7, 2005 Introduction to Algorithms L1.39
- 40.
Birleştirme sıralaması için
yineleme
Θ(1) eğer n = 1ise;
T(n) =
2T(n/2) + Θ(n) eğer n > 1ise.
• Genellikle n'nin küçük değerleri için taban
durumu ( base case ) olan T(n) = Θ(1) 'i
hesaplara katmayacağız; ama bunu sadece
yinelemenin asimptotik çözümünü
etkilemiyorsa yapacağız.
• 2. Derste T(n)'nin üst sınırını bulmanın birkaç
yolunu inceleyeceğiz.
Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson
September 7, 2005 Introduction to Algorithms L1.40
- 41.
Yineleme ağacı
T(n) =2T(n/2) + cn'yi çözün; burada c > 0 bir sabittir.
Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson
September 7, 2005 Introduction to Algorithms L1.41
- 42.
Yineleme ağacı
T(n) =2T(n/2) + cn'i çözün; burada c > 0 bir sabittir.
T(n)
Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson
September 7, 2005 Introduction to Algorithms L1.42
- 43.
Yineleme ağacı
T(n) =2T(n/2) + cn'i çözün; burada c > 0 bir
sabittir.
cn
T(n/2) T(n/2)
Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson
September 7, 2005 Introduction to Algorithms L1.43
- 44.
Yineleme ağacı
T(n) =2T(n/2) + cn'i çözün; burada c > 0 bir
sabittir.
cn
cn/2 cn/2
T(n/4) T(n/4) T(n/4) T(n/4)
Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson
September 7, 2005 Introduction to Algorithms L1.44
- 45.
Yineleme ağacı
T(n) =2T(n/2) + cn'i çözün; burada c > 0 bir
sabittir.'
cn
cn/2 cn/2
cn/4 cn/4 cn/4 cn/4
…
Θ(1)
Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson
September 7, 2005 Introduction to Algorithms L1.45
- 46.
Yineleme ağacı
T(n)= 2T(n/2) + cn'i çözün; burada c > 0 bir
sabittir.
cn
cn/2 cn/2
h = lg n cn/4 cn/4 cn/4 cn/4
…
Θ(1)
Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson
September 7, 2005 Introduction to Algorithms L1.46
- 47.
Yineleme ağacı
T(n)= 2T(n/2) + cn'i çözün; burada c > 0 bir
sabittir.
cn cn
cn/2 cn/2
h = lg n cn/4 cn/4 cn/4 cn/4
…
Θ(1)
Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson
September 7, 2005 Introduction to Algorithms L1.47
- 48.
Yineleme ağacı
T(n)= 2T(n/2) + cn'i çözün; burada c > 0 bir
sabittir. cn cn
cn/2 cn/2 cn
h = lg n cn/4 cn/4 cn/4 cn/4
…
Θ(1)
Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson
September 7, 2005 Introduction to Algorithms L1.48
- 49.
Yineleme ağacı
T(n)= 2T(n/2) + cn'i çözün; burada c > 0 bir
sabittir. cn cn
cn/2 cn/2 cn
h = lg n cn/4 cn/4 cn/4 cn/4 cn
…
Θ(1)
Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson
September 7, 2005 Introduction to Algorithms L1.49
- 50.
Yineleme ağacı
T(n)= 2T(n/2) + cn'i çözün; burada c > 0 bir
sabittir. cn cn
cn/2 cn/2 cn
h = lg n cn/4 cn/4 cn/4 cn/4 cn
…
Θ(1) yaprak sayısı = n Θ(n)
Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson
September 7, 2005 Introduction to Algorithms L1.50
- 51.
Yineleme ağacı
T(n)= 2T(n/2) + cn'i çözün; burada c > 0 bir
sabittir. cn cn
cn/2 cn/2 cn
h = lg n cn/4 cn/4 cn/4 cn/4 cn
…
Θ(1) yaprak sayısı = n Θ(n)
Toplam = Θ(n lg n)
Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson
September 7, 2005 Introduction to Algorithms L1.51
- 52.
Sonuçlar
• Θ(n lg n), Θ(n2)'dan daha yavaş büyür.
• En kötü durumda, birleştirme sıralaması
asimptotik olarak araya yerleştirme
sıralamasından daha iyidir.
• Pratikte, birleştirme sıralaması araya
yerleştirme sıralamasını n > 30 değerlerinde
geçer.
• Bunu kendiniz deneyin!
Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson
September 7, 2005 Introduction to Algorithms L1.52