27.12.11

C ile Bubble Sort (Kabarcık Sıralama) -Dinamik Yapı


Aşağıda C ile yazılmış bir sıralama programı var. Programın özelliği sıralanacak sayıların kaç tane olacağı esnek, kullanıcı tarafından belirleniyor. Bubble Sort'dan çok daha verimli sıralama algoritmaları vardır. Hatta sıralama başlı başına büyük bir konudur ama burada amaç biraz da C ve algoritma pratiği yapmak. Bubble sort'un çalışma mantığı yandakiresimden anlaşılabilir.




#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int* bublesort(int*);

void main()
{
       int N,a,b = 0;
       int* sayilar;

       printf("Kac sayi gireceginizi belirtin\n");
       scanf("%d",&N);
       sayilar = (int*)malloc(sizeof(int)*N);
       printf("Sayilari girmeye baslayin\n");
       for(a=0; a<N; a++)
       {
             scanf("%d",(sayilar+a));
       }
       printf("Sayi girisi tamamlandi. Girdiginiz sayilar:\n");
       for(b=0; b<N;b++)
       {
             printf("%d\t",sayilar[b]);
       }

       bublesort(sayilar,N);

       printf("Sayi siralama tamamlandi. Siralanan sayilar:\n");
       for(b=0; b<N;b++)
       {
             printf("%d\t",sayilar[b]);
       }

       free(sayilar);
       getchar();
}

int* bublesort(int dizi[], int N)
{
       int j=0,k=0;
       int temp;

       for(j=0;j<N;j++)
       {
             for(k=j+1;k<N;k++)
             {
                    if(*(dizi+j)>*(dizi+k))  
                    {
                           temp = *(dizi+j);  //temp = dizi[j] ile aynı ifadedir.
                           dizi[j]=dizi[k];
                           dizi[k]=temp;
                    }
             }
       }
       return dizi;
}

Hiç yorum yok:

Yorum Gönder

Related Posts Plugin for WordPress, Blogger...