Insertion Sort Algoritması ve C++ Kodları
Ekleyen : WatCheR
Bilgisayar mühendisliği veya bilgisayar programcılığı okuyan bir çok kişinin işine yarayacak bir C++ program kodu. Kodları insertion sort(Eklemeli sıralama) algoritmasını inceleyerek tamamen kendim yazdım. Lütfen başka sitelere alıntı koyacaklar kaynak belirtsinler.
Öncelikle merak edenler için kısa bir açıklama yapmak istiyorum. Insertion sort verilen rakamları küçükten büyüğe doğru sıralamakta kullanılan bir algoritma çeşitidir.
Yazdığım programda rakam sayısını kullanıcıdan istiyor ve rastgele rakamlar üretip bunları sıraya diziyor. Sıraya dizerkende kaç işlem yapıldığını da hesaplayıp şu kadar işlem yapıldı diye belirtiyor. Programda tek sorun rakamların içinde 0 varsa hata oluşması. Onu da kendiniz düzenleyin hazırcı olmayın :)
C++ ile Insertion Sort(Eklemeli sıralama) kodları :
#include<
iostream
>
#include <
set
>
#include <
stdexcept
>
using namespace std;
int kackez;
int insertionSort(int A[], int n)
{
int i, j, key;
for (j = 2; j < n; j++)
{
key=A[j];
i=j-1;
while (A[i]>0 and A[i] > key)
{
A[i+1]=A[i];
i=i-1;
kackez++;
}
A[i+1]=key;
}
return kackez;
}
int main()
{
kackez=0;
int elemansayisi,say;
cout<<"Eleman sayisi : ";
cin>>elemansayisi;
int B[elemansayisi];
for (say=0;say
B[say]=rand();
cout
<
<
B[say]
<
<
endl;
}
insertionSort(B,elemansayisi);
cout<
cout<
}
cout
<
<
kackez
<
<" karsilastirma yapildi"<
return 0;
}
Kodları insertion sort(Eklemeli sıralama) algoritmasını inceleyerek tamamen kendim yazdım. Lütfen başka sitelere alıntı koyacaklar kaynak belirtsinler.
iyi akşamlar.bu kodda hata yok mu?eger kackez diye tanımladıgınız degisken kac kez karsılastırma yapıldıgını belirtiyorsa bence bi hata var.cunku eger sadece while in icinde artırırsak bu karsılastırma sayısını degil sadece A[i] nin key den büyük oldugu durumları verir.
valla aradan 3 yıl geçmiş, kodların ne işe yaradığını ile unutmuşum, dediğiniz kısımda hata var mı bilmiyorum ama hata yokmuş gibi görünüyor. Kodların çalışmasında da bi sorun çıkmamıştı zamanında
YA BEN BU ALGORÄ°TMAYI DERSTE ANLATCM BANA YARDIMCI OLACAK BÄ°RÄ°SÄ° VARMI??