Не получается реализовать qsort. Помогите найти ошибку - программа зацикливается...

Кирилл Косулин

Не получается реализовать qsort. Помогите найти ошибку. Программа зацикливается.
#include<stdio.h>
 
void Quick(int* A, int first, int last)
{
    int i = first, j = last, p = A[(first + last) / 2];
    int t;
 
 
    do {
        while (A[i] < p) i++;
        while (A[j] > p) j--;
        if (i <= j)
        {
            if (A[i] > A[j]) {
 
                t = A[i];
                A[i] = A[j];
                A[j] = t;
                i++;
                j--;
            }
        }
 
    } while (i <= j);
    if (i < last) Quick(A, i, last);
    if (first < j) Quick(A, first, j);
 
}
int main()
{
    int A[8] = { 1,3,2,4,9,7,8,6 }, i;
    Quick(A, 0, 7);
 
 
    for (i = 0; i < 5; i++)
        printf("sort=%d\n", A[i]);
    printf("end");
    getch();
}
1 ответ

Кирилл Косулин

Кирилл Косулин, строки 19 и 20 поставьте послe скобки(21)