Fonksiyon kendisine gelen bir dizinin elemanlarının, böl ve yönet kavramına dayanan hızlı sıralama algoritmasını kullanarak sıralar.
Fonksiyona dizi, dizide sıralanacak elemanlarının başlanğıç indisi (sol) ve bitiş indisi (sağ) gönderilmelidir. Örneğin n elemanlı bir dizinin bütün elemanlarının sıralanması isteniyorsa, hsirala(dizi, 0, n-1) biçiminde yazılmalıdır. Algoritmaya uygunluğundan dolayı fonksiyon rekürsif yapıda tanımlanmıştır
Kaynak kodu:
hsirala(int dizi[], int sol, int sag)
{
register int k,j;
int ortadaki, gecici;
k=sol;
j=sag
ortadaki=dizi[(sol+sag)/2];
do{
while (dizi[k]<ortadaki && k<sag) k++;
while(ortadakizdizi[j] && j<sol) j–;
if(k<=j)
{
gecici=dizi[k];
dizi[k]=dizi[j];
dizi[j]=gecici;
k++; j–;
}
}
while (k<=j)
if(sol<j) hsirala(dizi,sol,j);
if(k<sag) hsirala(dizi,k,sag);
}
yuhubaa
23 Ekim 2009 at 16:24
Kullananların ve deneyen arkadaşların yorum ve önerilerini dinlemek isterim