Professional Documents
Culture Documents
. 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
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
17 32 51 30
17 30 51 32
51 32 30
53
53
53
17
30
17
30 32 51 53
51 32 53
4.adm 17 30 32
51 53
7
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
11
12
1. Admda n-1 karlatrma 2. admda n-2 karlatrma 3. admda n-3 karlatrma : : N-1. admda 1 karlatrma
13
( n 1) * n i 2 i 1 1 2 1 n n 2 2 2 O(n )
n 1
14
Semeli sralama algoritmas, dizi sral bir dizi olsa bile dizinin tm elemanlar zerinden iletilmektedir.
15
Bu algoritmada batan sona doru yaplan taramalar ile arka arkaya gelen (ardk) elemanlar kyaslanr. Eer kklk/byklk durumu var ise yerleri deitirilir.
16
17
#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
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
3. Adm 3 2 2
2
1 4 5
3
1 4 5
1
3 4 5
22
4.Adm 2 1 1 2
3
4 5
3
4 5
23
1 2 3 4 5
24
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
En kt durumda 1. Admda n-1 karlatrma 2. admda n-2 karlatrma 3. admda n-3 karlatrma : : N-1. admda 1 karlatrma
26
( 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