UmpaLumpalar
Centipat
- Katılım
- 8 Ocak 2022
- Mesajlar
- 72
Daha fazla
- Cinsiyet
- Erkek
Merhaba arkadaşlar. Counting Sort'un alttaki iki tane for döngüsü kafama yatmadı. Neden yaptık? İlk iki döngüyü yaptıktan sonra zaten elimizde hazır bir C dizisi oluyor. Bu C dizisinde hangi elemandan kaç tane olduğu yazıyor. Direkt olarak yazdırsak daha mantıklı değil mi?
(A dizisi sıralanacak dizimiz, B dizimiz sonuçların dizildiği dizi, C dizisi ise sayıları saydığımız dimi. K ise en büyük değerimiz)
Java:
public static void countingsort(int[]A, int[]B, int k)
{
int C[]=new int[k]; // sayma dizisi oluşturuluyor
int i;
int j;
for(i=0; i<k; i++)
{
C[i]=0;
}
for(j=0; j<A.length; j++)
{
C[A[j]]=C[A[j]]+1 ;
}
for(i=1; i<k; i++)
{
C[i]=C[i]+C[i-1];
}
for(j=0; j<A.length; j++)
{
B[C[A[j]]]=A[j];
C[A[j]]=C[A[j]]-1;
}
}