C ile bir diziyi sıralamak

Bir diziyi sıralamak için çeşitli yöntemler vardır. Bunlardan “Kabarcık Sıralama” (Bubble Sort) algoritmasını kullanarak bir dizinin nasıl sıralanabileceğini görelim:

#include<stdio.h>

void sirala(int *dizi,int u){
     int i,k,g;
     for(i=0;i<u;i++){
         for(k=i;k<u;k++){
             if(dizi[k]<dizi[i]){
                 g=dizi[k];           //yer değiştir
                 dizi[k]=dizi[i];
                 dizi[i]=g;
                 }
             }
     }
}

int main(){
    int k,dizi[10];
    printf(“Merhaba! 10 tane sayi girin ve biz de siralayalim :) \n”);
    for(k=0; k<10; k++){
        printf(“%d. sayiyi girin: “,k+1);
        scanf(” %d”,&dizi[k]);
}
    sirala(dizi,10);
    printf(“Dizinin sirali hali\n”);
    for(k=0; k<10; k++) printf(“%d\n”,dizi[k]);
    getch();
    return 0;
   
}

Kabarcık sıralama en basit ve en kötü algoritmalardan biridir. Eğer yujarıdaki örnekte 10 yerine 1000 sayı koysaydınız sıralama yaklaşık 5000 kat daha uzun sürecekti. Ama basit işlerde kullanabilirsiniz. Yaptığı şey dizinin her üyesini teker teker diğerleriyle karşılaştırmak ve eğer daha küçüğüyle karşılaşılırsa ikisinin yerini değiştirmek.

3 Yanıt to “C ile bir diziyi sıralamak”

  1. Halil İbrahim Diyor ki:

    Bi ara sana stdlib.h daki qsort() fonksiyonunu anlatayım x kişisi. Bunu yazmandan daha kolay.
    Örneğinde 10 yerine 1000 sayi girersen 100000 kat yavaşlıyo.
    quick sortta ise 300 kat yavaşlıyo.

    • ypng Diyor ki:

      Halil kırk yılda bir blogumu okuyorsun onda da eziyorsun bu ne iştir yahu. Onu bırak da senin sınavın nasıl geçti. Madalya alabilir misin?

  2. Halil İbrahim Diyor ki:

    Pardon 10000 bi sıfır fazla kaçmış

Yorum yapın

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Değiştir )

Twitter picture

You are commenting using your Twitter account. Log Out / Değiştir )

Facebook photo

You are commenting using your Facebook account. Log Out / Değiştir )

Connecting to %s

Takip Et

Get every new post delivered to your Inbox.