KABARCIK SIRALAMA (BUBBLE SORT) ALGORİTMASI
- Dizinin elemanları üzerinden ilk elemandan başlayarak ve her geçişte sadece yan yana bulunan iki eleman arasında sıralama yapılır
- Dizinin başından sonuna kadar tüm elemanlar bir kez işleme tabi tutulduğunda dizinin son elemanı (küçükten büyüğe sıralandığında) en büyük eleman haline gelecektir.
- Bir sonraki tarama ise bu en sağdaki eleman dışarıda bırakılarak gerçekleştirilmektedir. Bu dışarıda bırakma işlemi de dış döngüdeki sayaç değişkeninin değerinin her işletimde bir azaltılmasıyla sağlanmaktadır. Sayaç değişkeninin değeri 1 değerine ulaştığında ise dizinin solunda kalan son iki eleman da sıralanmakta ve sıralama işlemi tamamlanmaktadır.
- (n-1) iterasyon ve her iterasyonda (n-1) karşılaştırma.
- Toplam karşılaştırma sayısı : (n-1)*(n-1) = n2-2n+1 = O(n2)
örnek kod
#include<stdio.h>
#include<conio.h>
main()
{
int eleman ;
int gecici;
int *dizi;
printf("siralanacak dizi kac elemanli olacak ?");
scanf("%d",&eleman);
printf("siralanacak diziyi girin\n");
for(int i=0;i<eleman;i++)
{
scanf("%d",&dizi[i]);
}
for(int i=0;i<eleman;i++){
for(int j=i+1;j<eleman;j++)
{
if(dizi[i]>dizi[j])
{
gecici=dizi[i];
dizi[i]=dizi[j];
dizi[j]=gecici;
}
}
}
printf("siralandiktan sonraki hali \n");
for(int i=0;i<eleman;i++)
{
printf("%d ",dizi[i]);
}
getch();
}