Bir kitaptan bir sözde kod kullanarak (bir wikipedia dan gibi görünüyor) bir quicksort uygulamasını denedim, ancak çalışmasını sağlayamadım. Quicksort iyi çalışmıyor
Bu kaynak kodu:int partitionare(int a[], int n, int p, int r)
{
int x, i, j, aux;
x = a[r]; // pivot
i = p - 1;
for (j = p; j < r; j++)
{
if (a[j] <= x)
{
i++;
aux = a[j];
a[j] = a[i];
a[i] = aux;
}
}
aux = a[i + 1];
a[i + 1] = a[r];
a[r] = aux;
return i + 1;
}
void quicksort(int a[], int n, int p, int r)
{
if (p < r)
{
int q = partitionare(a, n, p, r);
partitionare(a, n, p, q - 1);
partitionare(a, n, q + 1, r);
}
}
p ve r uzaklaştırmak ve dizinin
sonu Ve çağrı işlevi vardır
:
quicksort(a, n, 0, n-1);
o saniye aldırma argüman Bu sadece test amaçlıdır.
(işleve
partition()
değil) yinelemeli işleviquicksort()
iç Wikipedia article son çağrılara kendisine edilir doğrultusunda kapsamınızı? Test girişiniz için hangi sonuçları görüyorsunuz? –Ups, üzgünüm, bahsetmeyi unuttum. Giriş: 2, 8, 7, 1, 3, 5, 6, 4 Çıkış: 2, 1, 3, 4, 7, 5, 6, 8 – Altair2033