More Related Content
PDF
Qlda 4-lapkehoachduan[easyvn.net] PPT
dene/Sunumlar/cab_abst.ppt PPSX
Keskkond ja tervis, TÜPS, 2012 I PDF
PPTX
Productive New Methods in New Media PDF
PPTX
PPT
dene/Sunumlar/cab_abst.ppt Viewers also liked
PPTX
продвижение в социальных сетях PDF
PPT
PPTX
Maini : Warehousing & inventory logistics the backbone of e-retail ecosystem PDF
PPTX
eTtailing India bangalore conference report 5th August 2015 PPTX
How to Use Blogs for Lead Generation PDF
About cci media connecting solutions introduction 2012 PPTX
Особая партнерская программа для веб-студий и агентств от IQSCAN PPTX
PPT
Keynote on India's Online Evolution by Ankit Nagori DOCX
Ola wants government to stop 'capital dumping' by rivals PPT
PDF
PPTX
Why Should You Exhibit at eTailing India Expo M17? 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
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
dene/Sunumlar/cab_abst.ppt PPT
dene/Sunumlar/cab_abst.ppt PPT
PPT
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