Respond needs javascript to run. To find out more click here
C programlama » Sayfa 2 » Serdar Demir
RSS
 

Archive for the ‘C programlama’ Category

C de Hızlı Sıralama Algoritması

16 Tem

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);

}