You are on page 1of 28

Sralama Algoritmalar Birok uygulamada veri dizilerinin, belirli srada olmas istenir.

. Veriler saysal ise kkten bye veya bykten ke, alfa saysal ise Adan Z ye veya Z den A ya doru sralanabilir. Sral veriler zerinde ilem/deerlendirme yapmak ok daha hzl ve kolaydr.

Gnmz bilgisayarlarnda kullanlan algoritmalarn nemli bir blmnn sralama algoritmalarna gereksinim duymas sralama algoritmalarnn nemini ortaya koymaktadr.
Gnlk hayattan rnek olarak, hayatn her alannda kullanlan veritabanlarnn dzenlenmesi, gncellenmesi ve arama ilemlerinin ok hzl yaplabilmesi iin veri alanlarnn doru bir biimde sralanmas gereklidir.
1

Sralama Algoritmalar Ayn sralama probleminin zmnde farkl aratrmaclar tarafndan ortaya konmu eitli sralama algoritmalar mevcuttur. Bunlarn her birinin dierlerine kyasla kullanm alanna gre stnlkleri ve eksik ynleri olmaktadr. oklu veriler ierisinde, istenilen bilgiyi aramak programlarda en sk karlalan ilemlerden biridir. Herhangi bir veri ynnda, ilgili bilgiye ulamak iin deiik algoritmalar kullanlr. Bu blmde birka popler sralama ve arama algoritmas anlatlacak ve dizilerde kullanm gsterilecektir. Dizilerde sralama ve arama algoritmalar aada gsterimleri saysal deerler zerinden yaplmasna ramen, hem saysal hem de alfa saysal bilgiler iin ayn ekilde alr.
2

Seme sralama (selection sort) algoritmas


Seme sralama (selection sort) en basit sralama algoritmalarndandr.
Dizideki ilk elemandan balanr. Seilen dizi eleman ile bu elemandan sonra gelen dizi elemanlar sras ile karlatrlr. Eer kklk/byklk (sralama isteine bal olarak) durumu var ise yerleri deitirilir. kinci etapta dizinin ikinci eleman ile bu elemandan sonra gelen dizi elemanlar sras ile karlatrlr ve ayn ekilde eer kklk/byklk durumu var ise yerleri deitirilir. Bu karlatrma ilemi sondan bir nceki eleman ile son elemann karlatrlmasna kadar devam eder ve ayn ekilde eer kklk/byklk durumu var ise yerleri deitirilir.
3

rnek:a[i]={30,51,32,17,53}

1. adm

30 51

30 51

30 51

17 51

32 17
53

32 17
53

32 17
53

32 30
53
4

Seme sralama (selection sort) algoritmas


2. adm
17

17 32 51 30

17 30 51 32

51 32 30

53

53

53

Seme sralama (selection sort) algoritmas


3.adm

17
30

17
30 32 51 53

51 32 53

Seme sralama (selection sort) algoritmas

4.adm 17 30 32

51 53
7

Seme sralama (selection sort) algoritmas

for(i=1;i<n;i++) {for(j=i+1;j<=n;j++) {if(A[j]<A[i]) {b=A[i]; A[i]=A[j]; A[j]=b;} } }


8

Seme sralama (selection sort) algoritmas


Kkten bye doru sralama yapan seme sralama (selection sort) algoritmas iin ak diyagramn izelim;

Seme sralama (selection sort) algoritmas

C/C++ Program; #include <stdio.h> #include <conio.h> int i,j,n,b; int A[100]; void main(void) {clrscr(); printf("dizi eleman sayisi:"); scanf("%d",&n); for(i=1;i<=n;i++) { printf("A[%d]: ",i); scanf("%d",&A[i]); printf(" \n"); }
10

Seme sralama (selection sort) algoritmas

for(i=1;i<n;i++) {for(j=i+1;j<=n;j++) {if(A[j]<A[i]) {b=A[i]; A[i]=A[j]; A[j]=b;} } }

11

Seme sralama (selection sort) algoritmas

for(i=1;i<=n;i++) { printf("%d ",A[i]);} printf(" \n"); getch(); }

12

Algoritma karmakl Seme sralama (selection sort)

1. Admda n-1 karlatrma 2. admda n-2 karlatrma 3. admda n-3 karlatrma : : N-1. admda 1 karlatrma

13

Algoritma karmakl Seme sralama (selection sort)

( n 1) * n i 2 i 1 1 2 1 n n 2 2 2 O(n )
n 1
14

Algoritma karmakl Seme sralama (selection sort)

Semeli sralama algoritmas, dizi sral bir dizi olsa bile dizinin tm elemanlar zerinden iletilmektedir.

15

Kabarck sralama (bubble sort) algoritmas


Bu algoritma balangta yer deitirme(exchange) sralamas olarak adlandrlmtr. Gnmzde kabarck sralamas olarak adlandrlmasnn nedeni dizi iindeki byk elemanlarn algoritmann her admnda dizi sonuna doru lineer olarak ilerlemesidir.

Bu algoritmada batan sona doru yaplan taramalar ile arka arkaya gelen (ardk) elemanlar kyaslanr. Eer kklk/byklk durumu var ise yerleri deitirilir.

16

Kabarck sralama (bubble sort) algoritmas


Kkten bye doru sralama yapan kabarck sralama (bubble sort) algoritmas iin ak diyagramn izelim;

17

Kabarck sralama (bubble sort) algoritmas


Bu sralama algoritmasnn C/C++ Program;

#include <stdio.h> #include <conio.h> int i,j,n,b; int A[100]; void main(void) { clrscr(); printf("dizi eleman sayisi:"); scanf("%d",&n); for(i=1;i<=n;i++) { printf("A[%d]: ",i); scanf("%d",&A[i]); printf(" \n"); }
18

Kabarck sralama (bubble sort) algoritmas


Bu sralama algoritmasnn C/C++ Program; for(i=1;i<=n;i++) { for(j=1;j<n;j++) { if(A[j+1]<A[j]) { b=A[j]; A[j]=A[j+1]; A[j+1]=b;} } } for(i=1;i<=n;i++) { printf("%d ",A[i]); } printf(" \n"); getch(); }

19

rnek: a[i]={5,4,3,2,1}
1. Adm 5 4 4 4 4

4
3 2 1

5
3 2 1

3
5 2 1

3
2 5 1

3
2 1 5

20

Kabarck sralama (bubble sort) algoritmas


2. Adm 4 3 2 1 5 3 4 2 1 5 3 2 4 1 5 3 2 1 4 5
21

Kabarck sralama (bubble sort) algoritmas

3. Adm 3 2 2

2
1 4 5

3
1 4 5

1
3 4 5

22

Kabarck sralama (bubble sort) algoritmas

4.Adm 2 1 1 2

3
4 5

3
4 5

23

Kabarck sralama (bubble sort) algoritmas

1 2 3 4 5
24

Kabarck sralama (bubble sort) algoritmas

Bu rnekte 5 elemanl ve ters sral bir dizinin 4 admda sraland grlmtr. 1. adm:4 karlatrma ve 4 yerdeitirme 2. adm:3 karlatrma ve 3 yerdeitirme 3. adm:2 karlatrma ve 2 yerdeitirme 4. adm:1 karlatrma ve 1 yerdeitirme

25

(Bubble sort) Algoritma karmakl

En kt durumda 1. Admda n-1 karlatrma 2. admda n-2 karlatrma 3. admda n-3 karlatrma : : N-1. admda 1 karlatrma

26

(Bubble sort) Algoritma karmakl

( n 1) * n i 2 i 1 1 2 1 n n 2 2 2 O(n )
n 1
27

zet
Semeli Sralama ve Kabarck sralama Algoritmalar ileyi bakmndan basit algoritmalar olmasna karlk karmaklk dzeyi n2 mertebesindedir. Veri saysndaki 5 kat ara karlk bu algoritmalardaki yaplan temel ilem saylar 25 katlk bir art gstermektedir. Veri saysnn az olduu uygulamalarda kullanlabilir.
28

You might also like