erkankarabulut
Öğrenci
- Katılım
- 18 Mart 2016
- Mesajlar
- 30
- Reaksiyon puanı
- 7
- Puanları
- 8
- Yaş
- 28
Merhabalar herkese,
Bu seferde sizlere başka bir sıralama algoritması olan insertion sort yani, sıralı diziyi öge öge oluşturan bir sıralama algritmasını anlatıcam. Umarım birilerine faydalı olur...
İ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 :
Kaynak ve Videolu Anlatım İçin :
C Dersleri (11. Ders) İnsertion Sort - Erkan Karabulut
Bu seferde sizlere başka bir sıralama algoritması olan insertion sort yani, sıralı diziyi öge öge oluşturan bir sıralama algritmasını anlatıcam. Umarım birilerine faydalı olur...
İ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 :
Kod:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int i,eleman,dizi[200],temp;
srand(time(NULL));
printf("Dizinin eleman sayisini giriniz :");
scanf("%d",&eleman);
for(i=0;i<eleman;i++) // elemanlarımıza rastgele değer atadık.
{
dizi[i]=rand()%100;
}
for(i=0;i<eleman;i++)
{
printf("%d ",dizi[i]); // sırasız diziyi ekrana yazdırdık.
}
printf("\n");
//insertion sort
for(i=1;i<eleman;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<eleman;i++)
{
printf("%d ",dizi[i]); // son olarak sıralı diziyi tekrar ekrana yazdırdık.
}
return 0;
}
C Dersleri (11. Ders) İnsertion Sort - Erkan Karabulut