İçeriğe geç
ShiftDelete.Net
Haber ara/ SDN'ye SorGiriş
Haber Akışı SDNTV İnceleme Forum Yapay Zeka Akıllı Telefon Elektrikli Otomobil Oyun ShiftDelete.Net Global Teknoloji Haberleri Mobil Otomobil Donanım Savunma Bilim Sosyal Medya İnternet Giyilebilir Teknoloji Rehber Ürünler Son dakika Yazarlar
  1. Ana sayfa
  2. Topluluk
  3. Programlama
  4. Programlama Dilleri
Programlama Dilleri

C Dilinde İnsertion Sort Algoritması

erkankarabulut20.03.20160 cevap2.419 görüntüleme
2016'den beri30 mesaj
#1
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 :
#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;
}

Kaynak ve Videolu Anlatım İçin :

C Dersleri (11. Ders) İnsertion Sort - Erkan Karabulut

Cevabını yaz

Cevap yazmak için giriş yap ya da üye ol. Eski forum kullanıcı adın ve parolanla girebilirsin.