void quickSort(int *A, int p, int r,int size)
{
if (p < r)
{
int static k = 0;
printf("\\n\\n********** %d회 퀵 정렬 ***********\\n", ++k);
printf("> 기준원소 : %d\\n> ", A[r]);
int q = partition(A, p, r, size);
printf("\\n");
printf("Result : ");
see(A, 0, size);
quickSort(A, p, q-1, size);
quickSort(A, q + 1, r, size);
}
}
int partition(int *A, int p, int r, int size)
{
int i = p - 1;
int j, tmp;
see(A, p, r);
for (j = p; j < r; j++)
{
if (A[j] <= A[r])
{
tmp = A[j];
A[j] = A[++i];
A[i] = tmp;
}
}
tmp = A[r];
A[r] = A[i + 1];
A[i + 1] = tmp;
return i + 1;
}
void see(int *A,int p, int size)
{
int i;
for (i = p; i <= size; i++)
printf("%d ", A[i]);
}