Merhaba arkadaşlar,

Bu seferde size başka bir sıralama algoritması olan insertion sorttan bahsetmek istiyorum.

İnsertion sort sıralı diziyi her adımda öge öge oluşturan bir sıralama tipidir. Şöyle ki dizinin 2. teriminden başlayarak önce 2. terimi 1. terim ile karşılaştırıp sıralıyoruz. Daha sonra 3. terimi kendisinden önce gelen ve artık sıralı bir dizi olmuş olan elemanlarla karşılaştırıp uygun olan yere koyuyoruz. Böylece dizinin son elemanına kadar aynı işlemleri tekrarlayıp sıralı dizimizi elde etmiş oluyoruz.

Örnek :

Rastgele girilen bir diziyi insertion sort kullanarak sıralama :

#include
#include
#include

int main()
{
int i,eleman,dizi[200],temp;
srand(time(NULL));
printf("Dizinin eleman sayisini giriniz :");
scanf("%d",&eleman);
for(i=0;i {
dizi[i]=rand()%100;
}
for(i=0;i {
printf("%d ",dizi[i]); // sırasız diziyi ekrana yazdırdık.
}

printf("\n");

//insertion sort

for(i=1;i{
temp=dizi[i]; // Yer değiştireceğimiz elemanı kaybolmaması için temp
// değişkenine atadı.
while(dizi[i-1]>temp && i>0)
{
dizi[i]=dizi[i-1]; // Küçük olan elemanı başa aldık.
i--;
}
dizi[i]=temp;
}
for(i=0;i {
printf("%d ",dizi[i]); // son olarak sıralı diziyi tekrar ekrana yazdırdık.
}

return 0;
}


Kaynak ve Videolu Anlatım İçin :
http://erkankarabulut.blogspot.com.tr/2016/03/c-dersleri-11-ders-insertion-sort.html