More Related Content
PPTX
PPTX
Planning for your upgrade to dynamics gp 2013 PPT
dene/Sunumlar/cab_abst.ppt PPT
DOCX
India’s Startups through Thick and Thin in 2016 PDF
Know Your Customer – A Simple Philosophy But A Complex Execution by Gopal Pil... PDF
Delhi 2015 stateof industry PPSX
Viewers also liked
PDF
PDF
The legal and institutional preconditions for strong securities market DOCX
Effective promotion strategies in e commerce PPT
PPT
PPT
PPT
PPT
Innovative Approaches to Barcoding and Warehouse Management DOCX
Ecommerce Provides A New Thrust To Shipping Industry PPTX
PPTX
Why Should You Exhibit at eTailing India Expo M17? PPTX
PDF
eTailing India Chennai Conclave 2013 Part 14 PDF
DOCX
Narendra modi’s independence day speech with viewpoint on e commerce DOCX
A Brief Guide to Marketing Communication Mix for eCommerce PPTX
Ερευνητική Εργασία Τάξης Α' Similar to dene/ders1.ppt
PPT
109635565-1-algoritma-ve-veri-yapıları.ppt PPT
Görsel c# ile windows programalama güz dönemi PPTX
Yzm 2116 Bölüm 6 - Sıralama ve Arama PPTX
PDF
Algoritma ve akış şemaları PPTX
Programlamaya Giriş, Algoritma ve Akış Şeması Diyagramı PPTX
Ayrık yapılar algoritmalar PPTX
Algoritmalarve programlamai ders_1 PPTX
PDF
Assembly Dili İle Binary Search Gerçekleştirimi PPTX
Algoritma - akış diyagramları - sözde kod PPTX
PPTX
PPTX
Programlamaya Giriş ve Algoritma Kavramı PPTX
Bloklamalı Akış Tipi Çizelgeleme Problemlerinde Toplam Akış Süresini Minimize... DOC
PPTX
PDF
PDF
DOCX
More from Batın Düz
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 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