More Related Content
PPTX
PPTX
PDF
Conversations and Conversions- Eshant Mishra- Business Leader IBM Customer En... DOCX
Former tcs chief's resignation from government posts sparks buzz PPT
PDF
Sage 2015 roadmap – next release and beyond DOCX
Government allows 100% fdi in ‘other financial services’ by nbf cs DOCX
Are eCommerce companies flouting discount rules?? Viewers also liked
PPTX
Iksula: Tablet Commerce - The Next Wave in eCommerce PPTX
Exploring SharePoint 2013 and Improving your Business Applications PDF
Introducing Microsoft Dynamics GP 2015 PPT
PDF
Cyber warfare capabiliites : A Reality Check PDF
Presentation in Slovak Parlament 15.5.2015 PDF
PPT
dene/Sunumlar/cab_abst.ppt PPTX
PDF
eTailing India 3rd Annual Expo Event - Presentation by Prakash Menon PPTX
Ερευνητική Εργασία Τάξης Α' PDF
eTailing India Chennai Conclave 2013 Part 5 PPTX
PPT
PDF
PDF
– RathinLahiri:What are the things you can do take advantage of Digital Chann... Similar to dene/ders1.ppt
PDF
PDF
PPTX
PPTX
Algoritmalarve programlamai ders_1 PPTX
Programlamaya Giriş, Algoritma ve Akış Şeması Diyagramı PPTX
Ayrık yapılar algoritmalar DOC
PPT
Görsel c# ile windows programalama güz dönemi PDF
Algoritma ve akış şemaları PPT
109635565-1-algoritma-ve-veri-yapıları.ppt PPTX
PPTX
PPTX
Programlamaya Giriş ve Algoritma Kavramı PPTX
Yzm 2116 Bölüm 6 - Sıralama ve Arama PDF
Assembly Dili İle Binary Search Gerçekleştirimi PPTX
Algoritma - akış diyagramları - sözde kod PPTX
PPTX
DOCX
PPTX
Bloklamalı Akış Tipi Çizelgeleme Problemlerinde Toplam Akış Süresini Minimize... More from Batın Düz
PDF
PDF
PPTX
dene/tiviace_english.pptx PPTX
dene/tiviace_english.pptx PDF
PPT
dene/TIVIACE_turkce03.ppt PPTX
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 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