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
September 7, 2005 Introduction to Algorithms L1.2
Dersle ilgili bilgiler
1. retim kadrosu
2. Uzaktan eitim
3. n koullar
4. Dersler
5. Ettler
6. Ders notlar
7. 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.3
Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson
Algoritmalarn zmlemesi
Bilgisayar program baarm ve kaynak
kullanm konusunda teorik almalar
Baarmdan daha nemli ne vardr ?
modlerlik
doruluk
bakm kolayl
ilevsellik
salamlk
kullanc dostluu
programc zaman
basitlik
geniletilebilirlik
gvenilirlik
September 7, 2005 Introduction to Algorithms L1.4
Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson
Neden algoritmalar ve
baarmla urarz?
Algoritmalarla leklenebilirlik anlalabilir.

Baarm genelde yaplabilir olanla imkanszn
arasndaki izgiyi tanmlar.
Algoritmik matematik program davranlarn
aklamak iin ortak oluturur.
Baarm bilgi ileme'nin para birimidir.
Program baarmndan alnan dersler
dier bilgi ileme kaynaklarna genellenebilir.
Hz elencelidir!
September 7, 2005 Introduction to Algorithms L1.5
Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson
Sralama (sorting) problemi
Girdi: dizi a
1
, a
2
, , a
n
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 Introduction to Algorithms L1.6
Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson
Araya yerletirme sralamas (Insertion sort)
INSERTION-SORT (A, n) A[1 . . n]
for j 2 to n
do key A[ j]
i j 1
while i > 0 and A[i] > key
do A[i+1] A[i]
i i 1
A[i+1] = key (anahtar)
pseudocode
( szdekod )
September 7, 2005 Introduction to Algorithms L1.7
Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson
INSERTION-SORT (A, n) A[1 . . n]
for j 2 to n
do key A[ j]
i j 1
while i > 0 and A[i] > key
do A[i+1] A[i]
i i 1
A[i+1] = key
pseudocode
(szde kod)
sorted (sral)

i j
key (anahtar)
A:
1 n
Araya yerletirme sralamas (Insertion sort)
September 7, 2005 Introduction to Algorithms L1.8
Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson
Araya yerletirme sralamas rnei
8 2 4 9 3 6
September 7, 2005 Introduction to Algorithms L1.9
Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson
Araya yerletirme sralamas rnei
8 2 4 9 3 6
September 7, 2005 Introduction to Algorithms L1.10
Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson
Araya yerletirme sralamas rnei
8 2 4 9 3 6
2 8 4 9 3 6
September 7, 2005 Introduction to Algorithms L1.11
Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson
Araya yerletirme sralamas rnei
8 2 4 9 3 6
2 8 4 9 3 6
September 7, 2005 Introduction to Algorithms L1.12
Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson
Araya yerletirme sralamas rnei
8 2 4 9 3 6
2 8 4 9 3 6
2 4 8 9 3 6
September 7, 2005 Introduction to Algorithms L1.13
Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson
Araya yerletirme sralamas rnei
8 2 4 9 3 6
2 8 4 9 3 6
2 4 8 9 3 6
September 7, 2005 Introduction to Algorithms L1.14
Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson
Araya yerletirme sralamas rnei
8 2 4 9 3 6
2 8 4 9 3 6
2 4 8 9 3 6
2 4 8 9 3 6
September 7, 2005 Introduction to Algorithms L1.15
Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson
Araya yerletirme sralamas rnei
8 2 4 9 3 6
2 8 4 9 3 6
2 4 8 9 3 6
2 4 8 9 3 6
September 7, 2005 Introduction to Algorithms L1.16
Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson
Araya yerletirme sralamas rnei
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
September 7, 2005 Introduction to Algorithms L1.17
Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson
Araya yerletirme sralamas rnei
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
September 7, 2005 Introduction to Algorithms L1.18
Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson
Araya yerletirme sralamas rnei
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)
September 7, 2005 Introduction to Algorithms L1.19
Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson
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 Introduction to Algorithms L1.20
Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson
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 Introduction to Algorithms L1.21
Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson
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 ne bak.

Asem " Asimptotik zmleme"
September 7, 2005 Introduction to Algorithms L1.22
Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson
- simgelemi (notation)
Dk deerli terimleri at; n sabitleri ihmal et.
rnek: 3n
3
+ 90n
2
5n + 6046 = (n
3
)
Matematik:
(g(n)) = { f (n) : yle c
1
, c
2
, n
0
pozitif sabit saylar
vardr ki tm n n0} iin 0 c
1
g(n) f (n) c
2
g(n).
Mhendislik:
September 7, 2005 Introduction to Algorithms L1.23
Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson
Asimptotik baarm
n
T(n)
n
0
te yandan asimptotik
adan yava algoritmalar
ihmal etmemeliyiz.
Gerek dnyada tasarmn
mhendislik hedefleriyle
dikkatle dengelenmesi
gereklidir.
Asimptotik zmleme
dncemizi yaplandrmada
nemli bir aratr.
n yeterince byrse, (n
2
) algoritmas
bir (n
3
) algoritmasndan her zaman daha hzldr.
September 7, 2005 Introduction to Algorithms L1.24
Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson
Araya yerletirme sralamas zmlemesi
En kt durum: Giri tersten sralysa.
( )

=
= =
n
j
n j n T
2
2
) ( ) (
Ortalama durum:Tm permutasyonlar eit olaslkl.
( )

=
= =
n
j
n j n T
2
2
) 2 / ( ) (
[aritmetik seri]
Araya yerletirme sralamas hzl bir algoritma mdr ?
Kk n deerleri iin olabilir.
Byk n deerleri iin asla!
September 7, 2005 Introduction to Algorithms L1.25
Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson
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 Introduction to Algorithms L1.26
Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson
Sral iki dizilimi birletirme
12
11
9
1
20
13
7
2
September 7, 2005 Introduction to Algorithms L1.27
Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson
20
13
7
2
12
11
9
1
1
Sral iki dizilimi birletirme
September 7, 2005 Introduction to Algorithms L1.28
Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson
20
13
7
2
12
11
9
1
1
20
13
7
2
12
11
9
Sral iki dizilimi birletirme
September 7, 2005 Introduction to Algorithms L1.29
Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson
20
13
7
2
12
11
9
1
1
20
13
7
2
12
11
9
2
Sral iki dizilimi birletirme
September 7, 2005 Introduction to Algorithms L1.30
Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson
20
13
7
2
12
11
9
1
1
20
13
7
2
12
11
9
2
20
13
7
12
11
9
Sral iki dizilimi birletirme
September 7, 2005 Introduction to Algorithms L1.31
Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson
20
13
7
2
12
11
9
1
1
20
13
7
2
12
11
9
2
20
13
7
12
11
9
7
Sral iki dizilimi birletirme
September 7, 2005 Introduction to Algorithms L1.32
Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson
20
13
7
2
12
11
9
1
1
20
13
7
2
12
11
9
2
20
13
7
12
11
9
7
20
13
12
11
9
Sral iki dizilimi birletirme
September 7, 2005 Introduction to Algorithms L1.33
Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson
20
13
7
2
12
11
9
1
1
20
13
7
2
12
11
9
2
20
13
7
12
11
9
7
20
13
12
11
9
9
Sral iki dizilimi birletirme
September 7, 2005 Introduction to Algorithms L1.34
Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson
20
13
7
2
12
11
9
1
1
20
13
7
2
12
11
9
2
20
13
7
12
11
9
7
20
13
12
11
9
9
20
13
12
11
Sral iki dizilimi birletirme
September 7, 2005 Introduction to Algorithms L1.35
Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson
20
13
7
2
12
11
9
1
1
20
13
7
2
12
11
9
2
20
13
7
12
11
9
7
20
13
12
11
9
9
20
13
12
11
11
Sral iki dizilimi birletirme
September 7, 2005 Introduction to Algorithms L1.36
Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson
20
13
12 20
13
7
2
12
11
9
1
1
20
13
7
2
12
11
9
2
20
13
7
12
11
9
7
20
13
12
11
9
9
20
13
12
11
11
Sral iki dizilimi birletirme
September 7, 2005 Introduction to Algorithms L1.37
Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson
20
13
7
2
12
11
9
1
1
20
13
7
2
12
11
9
2
20
13
7
12
11
9
7
20
13
12
11
9
9
20
13
12
11
11
20
13
12
12
Sral iki dizilimi birletirme
September 7, 2005 Introduction to Algorithms L1.38
Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson
20
13
7
2
12
11
9
1
1
20
13
7
2
12
11
9
2
20
13
7
12
11
9
7
20
13
12
11
9
9
20
13
12
11
11
20
13
12
12
Sre = (n), toplam n eleman
birletirmek iin (dorusal zaman).
Sral iki dizilimi birletirme
September 7, 2005 Introduction to Algorithms L1.39
Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson
Birletirme sralamasnn zmlenmesi
BRLETRME-SIRALAMASI A[1 . . n]
1. Eer n = 1'se, bitir.
2. Yinelemeli olarak A[ 1 . . n/2 ] ve
A[ n/2+1 . . n ]'yi srala.
3. 2 sral listeyi Birletir
T(n)
(1)
2T(n/2)
(n)
Suistimal
zensizlik: T( n/2 ) + T( n/2 ) olmas gerekir,
ama asimptotik adan bu nemli deildir.
September 7, 2005 Introduction to Algorithms L1.40
Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson
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 Introduction to Algorithms L1.41
Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson
Yineleme aac
T(n) = 2T(n/2) + cn'yi zn; burada c > 0 bir sabittir.
September 7, 2005 Introduction to Algorithms L1.42
Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson
Yineleme aac
T(n) = 2T(n/2) + cn'i zn; burada c > 0 bir sabittir.
T(n)
September 7, 2005 Introduction to Algorithms L1.43
Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson
Yineleme aac
T(n) = 2T(n/2) + cn'i zn; burada c > 0 bir sabittir.
T(n/2)
T(n/2)
cn
September 7, 2005 Introduction to Algorithms L1.44
Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson
Yineleme aac
T(n) = 2T(n/2) + cn'i zn; burada c > 0 bir sabittir.
cn
T(n/4) T(n/4) T(n/4) T(n/4)
cn/2
cn/2
September 7, 2005 Introduction to Algorithms L1.45
Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson
Yineleme aac
T(n) = 2T(n/2) + cn'i zn; burada c > 0 bir sabittir.'i zn; burada c > 0 bir sabittir.
cn
cn/4 cn/4 cn/4 cn/4
cn/2
cn/2
(1)

September 7, 2005 Introduction to Algorithms L1.46


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

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

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

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

h = lg n
cn
cn
cn

September 7, 2005 Introduction to Algorithms L1.50


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

h = lg n
cn
cn
(n)

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

h = lg n
cn
cn
cn
yaprak says = n (n)

Toplam = (n lg n)
cn
yaprak says = n
September 7, 2005 Introduction to Algorithms L1.52
Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson
Sonular
(n lg n), (n
2
)'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!

You might also like