Download as pdf or txt
Download as pdf or txt
You are on page 1of 52

Algoritmalara Giri 6.046J/18.

401J
DERS 1
Algoritmalarn zmlemesi Araya yerletirme sralamas Asimptotik zmleme Birletirme sralamas Yinelemeler

Prof. Charles E. Leiserson


Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson

Dersle ilgili bilgiler


1. 2. 3. 4. 5. 6. 7. retim kadrosu Uzaktan eitim n koullar Dersler Ettler Ders notlar Ders kitab 8. Dersin WEB sitesi 9. Ek destek 10. Kayt 11. Problem setleri 12. Algoritmalar tanmlamak 13. Not verme politikas 14. Ortak alma politikas

September 7, 2005

Introduction to Algorithms

L1.2

Algoritmalarn zmlemesi
Bilgisayar program baarm ve kaynak kullanm konusunda teorik almalar Baarmdan daha nemli ne vardr ? kullanc dostluu modlerlik programc zaman doruluk basitlik bakm kolayl
ilevsellik salamlk geniletilebilirlik gvenilirlik

September 7, 2005

Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson

Introduction to Algorithms

L1.3

Neden algoritmalar ve baarmla urarz?


Algoritmalarla leklenebilirlik anlalabilir. Baarm genelde yaplabilir olanla imkanszn arasndaki izgiyi tanmlar. Algoritmik matematik program davranlarn aklamak iin ortak dil oluturur. Baarm bilgi ileme'nin para birimidir. Program baarmndan alnan dersler dier bilgi ileme kaynaklarna genellenebilir. Hz elencelidir!
September 7, 2005
Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson

Introduction to Algorithms

L1.4

Sralama (sorting) problemi


Girdi: dizi a1, a2, , an saylar. kt: permtasyon 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
September 7, 2005
Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson

Introduction to Algorithms

L1.5

Araya yerletirme sralamas (Insertion sort)


INSERTION-SORT (A, n) A[1 . . n] for j 2 to n do key A[ j] ij1 while i > 0 and A[i] > key do A[i+1] A[i] ii1 A[i+1] = key (anahtar)

pseudocode
( szdekod )

September 7, 2005

Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson

Introduction to Algorithms

L1.6

Araya yerletirme sralamas (Insertion sort)


INSERTION-SORT (A, n) A[1 . . n] for j 2 to n do key A[ j] ij1 while i > 0 and A[i] > key do A[i+1] A[i] ii1 A[i+1] = key i j
key (anahtar)
L1.7

pseudocode
(szde kod)

A:
sorted (sral)
September 7, 2005
Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson

Introduction to Algorithms

Araya yerletirme sralamas rnei


8 2 4 9 3 6

September 7, 2005

Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson

Introduction to Algorithms

L1.8

Araya yerletirme sralamas rnei


8 2 4 9 3 6

September 7, 2005

Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson

Introduction to Algorithms

L1.9

Araya yerletirme sralamas rnei


8 2 2 8 4 4 9 9 3 3 6 6

September 7, 2005

Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson

Introduction to Algorithms

L1.10

Araya yerletirme sralamas rnei


8 2 2 8 4 4 9 9 3 3 6 6

September 7, 2005

Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson

Introduction to Algorithms

L1.11

Araya yerletirme sralamas rnei


8 2 2 2 8 4 4 4 8 9 9 9 3 3 3 6 6 6

September 7, 2005

Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson

Introduction to Algorithms

L1.12

Araya yerletirme sralamas rnei


8 2 2 2 8 4 4 4 8 9 9 9 3 3 3 6 6 6

September 7, 2005

Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson

Introduction to Algorithms

L1.13

Araya yerletirme sralamas rnei


8 2 2 2 2 8 4 4 4 4 8 8 9 9 9 9 3 3 3 3 6 6 6 6

September 7, 2005

Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson

Introduction to Algorithms

L1.14

Araya yerletirme sralamas rnei


8 2 2 2 2 8 4 4 4 4 8 8 9 9 9 9 3 3 3 3 6 6 6 6

September 7, 2005

Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson

Introduction to Algorithms

L1.15

Araya yerletirme sralamas rnei


8 2 2 2 2 2 8 4 4 3 4 4 8 8 4 9 9 9 9 8 3 3 3 3 9 6 6 6 6 6

September 7, 2005

Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson

Introduction to Algorithms

L1.16

Araya yerletirme sralamas rnei


8 2 2 2 2 2 8 4 4 3 4 4 8 8 4 9 9 9 9 8 3 3 3 3 9 6 6 6 6 6

September 7, 2005

Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson

Introduction to Algorithms

L1.17

Araya yerletirme sralamas rnei


8 2 2 2 2 2
September 7, 2005

2 8 4 4 3 3

4 4 8 8 4 4

9 9 9 9 8 6

3 3 3 3 9 8

6 6 6 6 6 9 (bitti)
L1.18

Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson

Introduction to Algorithms

Koma sresi (Running time)


Koma sresi girie bamldr: nceden sralanm bir diziyi sralamak daha kolaydr. Koma sresinin giriin boyutuna gre parametrelenmesi yararldr, nk ksa dizileri sralamak uzun dizilere oranla daha kolaydr. Genellikle, koma sresinde st snrlar ararz, nk herkes garantiden holanr.

September 7, 2005

Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson

Introduction to Algorithms

L1.19

zmleme trleri
En kt durum (Worst-case): (genellikle) T(n) = n boyutlu bir girite algoritmann maksimum sresi Ortalama durum: (bazen) T(n) = n boyutlu her girite algoritmann beklenen sresi. Girilerin istatistiksel dalm iin varsaym gerekli. En iyi durum: (gerek d) Bir giri yapsnda hzl alan yava bir algoritma ile hile yapmak.
September 7, 2005
Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson

Introduction to Algorithms

L1.20

Makineden-bamsz zaman
Araya yerletirme sralamasnn en kt zaman nedir?

Bilgisayarn hzna baldr: bal ( rlatif ) zaman ( ayn makinede), mutlak (absolt ) zaman (farkl makinelerde). BYK FKR: Makineye baml sabitleri grmezden gel. n ' a yaklatka, T(n)'nin bymesine bak. " Asimptotik zmleme"
September 7, 2005
Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson

Introduction to Algorithms

L1.21

- simgelemi (notation)
Matematik: (g(n)) = { f (n) : yle c1, c2, n0 pozitif sabit saylar Mhendislik:

vardr ki tm n n0} iin 0 c1 g(n) f (n) c2 g(n).

Dk deerli terimleri at; n sabitleri ihmal et. rnek: 3n3 + 90n2 5n + 6046 = (n3)

September 7, 2005

Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson

Introduction to Algorithms

L1.22

Asimptotik baarm
n yeterince byrse, (n2) algoritmas bir (n3) algoritmasndan her zaman daha hzldr.
te yandan asimptotik adan yava algoritmalar ihmal etmemeliyiz. Gerek dnyada tasarmn mhendislik hedefleriyle dikkatle dengelenmesi gereklidir. Asimptotik zmleme dncemizi yaplandrmada nemli bir aratr.
L1.23

T(n)

n
September 7, 2005

n0

Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson

Introduction to Algorithms

Araya yerletirme sralamas zmlemesi

En kt durum: Giri tersten sralysa.

T ( n) =

( j ) = (n 2 )
j =2 n 2) ( ( j / 2 ) = n j =2

[aritmetik seri]

Ortalama durum:Tm permutasyonlar eit olaslkl.

T ( n) =

Araya yerletirme sralamas hzl bir algoritma mdr ?

Kk n deerleri iin olabilir. Byk n deerleri iin asla!


September 7, 2005 Introduction to Algorithms

Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson

L1.24

Birletirme sralamas
BRLETRME-SIRALAMASI A[1 . . n] 1. Eer n = 1 ise, ilem bitti. 2. A[ 1 . . n/2 ]ve A[ n/2+1 . . n ]'yi zyinelemeli srala. 3. 2 sralanm listeyi Birletir. Anahtar altyordam: Birletirme

September 7, 2005

Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson

Introduction to Algorithms

L1.25

Sral iki dizilimi birletirme


20 12 13 11 7 2 9 1

September 7, 2005

Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson

Introduction to Algorithms

L1.26

Sral iki dizilimi birletirme


20 12 13 11 7 2 1 9 1

September 7, 2005

Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson

Introduction to Algorithms

L1.27

Sral iki dizilimi birletirme


20 12 13 11 7 2 1 9 1 20 12 13 11 7 2 9

September 7, 2005

Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson

Introduction to Algorithms

L1.28

Sral iki dizilimi birletirme


20 12 13 11 7 2 1 9 1 20 12 13 11 7 2 2 9

September 7, 2005

Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson

Introduction to Algorithms

L1.29

Sral iki dizilimi birletirme


20 12 13 11 7 2 1 9 1 20 12 13 11 7 2 2 9 20 12 13 11 7 9

September 7, 2005

Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson

Introduction to Algorithms

L1.30

Sral iki dizilimi birletirme


20 12 13 11 7 2 1 9 1 20 12 13 11 7 2 2 7 9 20 12 13 11 7 9

September 7, 2005

Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson

Introduction to Algorithms

L1.31

Sral iki dizilimi birletirme


20 12 13 11 7 2 1 9 1 20 12 13 11 7 2 2 7 9 20 12 13 11 7 9 20 12 13 11 9

September 7, 2005

Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson

Introduction to Algorithms

L1.32

Sral iki dizilimi birletirme


20 12 13 11 7 2 1 9 1 20 12 13 11 7 2 2 7 9 9 20 12 13 11 7 9 20 12 13 11 9

September 7, 2005

Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson

Introduction to Algorithms

L1.33

Sral iki dizilimi birletirme


20 12 13 11 7 2 1 9 1 20 12 13 11 7 2 2 7 9 9 20 12 13 11 7 9 20 12 13 11 9 20 12 13 11

September 7, 2005

Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson

Introduction to Algorithms

L1.34

Sral iki dizilimi birletirme


20 12 13 11 7 2 1 9 1 20 12 13 11 7 2 2 7 9 11 9 20 12 13 11 7 9 20 12 13 11 9 20 12 13 11

September 7, 2005

Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson

Introduction to Algorithms

L1.35

Sral iki dizilimi birletirme


20 12 13 11 7 2 1 9 1 20 12 13 11 7 2 2 7 9 11 9 20 12 13 11 7 9 20 12 13 11 9 20 12 13 11 20 12 13

September 7, 2005

Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson

Introduction to Algorithms

L1.36

Sral iki dizilimi birletirme


20 12 13 11 7 2 1 9 1 20 12 13 11 7 2 2 7 9 11 12 9 20 12 13 11 7 9 20 12 13 11 9 20 12 13 11 20 12 13

September 7, 2005

Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson

Introduction to Algorithms

L1.37

Sral iki dizilimi birletirme


20 12 13 11 7 2 1 9 1 20 12 13 11 7 2 2 7 9 11 12 9 20 12 13 11 7 9 20 12 13 11 9 20 12 13 11 20 12 13

Sre = (n), toplam n eleman birletirmek iin (dorusal zaman).


September 7, 2005
Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson

Introduction to Algorithms

L1.38

Birletirme sralamasnn zmlenmesi


T(n) BRLETRME-SIRALAMASI A[1 . . n] (1) 1. Eer n = 1'se, bitir. 2T(n/2) 2. Yinelemeli olarak A[ 1 . . n/2 ] ve Suistimal A[ n/2+1 . . n ]'yi srala. (n) 3. 2 sral listeyi Birletir zensizlik: T( n/2 ) + T( n/2 ) olmas gerekir, ama asimptotik adan bu nemli deildir.
September 7, 2005
Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson

Introduction to Algorithms

L1.39

Birletirme sralamas iin yineleme


T(n) = (1) eer n = 1ise; 2T(n/2) + (n) eer n > 1ise.

Genellikle n'nin kk deerleri iin taban durumu ( base case ) olan T(n) = (1) 'i hesaplara katmayacaz; ama bunu sadece yinelemenin asimptotik zmn etkilemiyorsa yapacaz. 2. Derste T(n)'nin st snrn bulmann birka yolunu inceleyeceiz.
September 7, 2005
Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson

Introduction to Algorithms

L1.40

Yineleme aac
T(n) = 2T(n/2) + cn'yi zn; burada c > 0 bir sabittir.

September 7, 2005

Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson

Introduction to Algorithms

L1.41

Yineleme aac
T(n) = 2T(n/2) + cn'i zn; burada c > 0 bir sabittir.

T(n)

September 7, 2005

Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson

Introduction to Algorithms

L1.42

Yineleme aac
T(n) = 2T(n/2) + cn'i zn; burada c > 0 bir sabittir. cn T(n/2) T(n/2)

September 7, 2005

Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson

Introduction to Algorithms

L1.43

Yineleme aac
T(n) = 2T(n/2) + cn'i zn; burada c > 0 bir sabittir. cn cn/2 T(n/4) T(n/4) T(n/4) cn/2 T(n/4)

September 7, 2005

Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson

Introduction to Algorithms

L1.44

Yineleme aac

T(n) = 2T(n/2) + cn'i zn; burada c > 0 bir sabittir.'i cn cn/2 cn/4 (1)
September 7, 2005
Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson

cn/2 cn/4 cn/4 cn/4

Introduction to Algorithms

L1.45

Yineleme aac
T(n) = 2T(n/2) + cn'i zn; burada c > 0 bir sabittir. cn cn/2 h = lg n cn/4 (1)
September 7, 2005
Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson

cn/2 cn/4 cn/4 cn/4

Introduction to Algorithms

L1.46

Yineleme aac
T(n) = 2T(n/2) + cn'i zn; burada c > 0 bir sabittir. cn cn cn/2 h = lg n cn/4 (1)
September 7, 2005
Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson

cn/2 cn/4 cn/4 cn/4

Introduction to Algorithms

L1.47

Yineleme aac
T(n) = 2T(n/2) + cn'i zn; burada c > 0 bir sabittir. cn cn cn/2 h = lg n cn/4 (1)
September 7, 2005
Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson

cn/2 cn/4 cn/4 cn/4

cn

Introduction to Algorithms

L1.48

Yineleme aac
T(n) = 2T(n/2) + cn'i zn; burada c > 0 bir sabittir. cn cn cn/2 h = lg n cn/4

cn/2 cn/4 cn/4 cn/4

cn cn

(1)
September 7, 2005
Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson

Introduction to Algorithms

L1.49

Yineleme aac
T(n) = 2T(n/2) + cn'i zn; burada c > 0 bir sabittir. cn cn cn/2 h = lg n cn/4

cn/2 cn/4 cn/4 cn/4

cn cn (n)
L1.50

(1)
September 7, 2005

yaprak says = n
Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson

Introduction to Algorithms

Yineleme aac
T(n) = 2T(n/2) + cn'i zn; burada c > 0 bir sabittir. cn cn cn/2 h = lg n cn/4

cn/2 cn/4 cn/4 cn/4

cn cn (n)

(1)
September 7, 2005

yaprak says = n
Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson

Toplam = (n lg n)
Introduction to Algorithms L1.51

Sonular
(n lg n), (n2)'dan daha yava byr. En kt durumda, birletirme sralamas asimptotik
olarak araya yerletirme sralamasndan daha iyidir.

Pratikte, birletirme sralamas araya yerletirme sralamasn n > 30 deerlerinde geer.


Bunu kendiniz deneyin!
September 7, 2005
Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson

Introduction to Algorithms

L1.52

You might also like