c语言实现快速排序,每次排序进行一次输出
时间: 2023-07-05 09:29:47 浏览: 41
下面是一个每次排序输出的快速排序的 C 语言实现:
```c
void quick_sort(int arr[], int left, int right) {
int i, j, pivot, temp;
if (left < right) {
pivot = left;
i = left;
j = right;
while (i < j) {
while (arr[i] <= arr[pivot] && i <= right) {
i++;
}
while (arr[j] > arr[pivot]) {
j--;
}
if (i < j) {
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
temp = arr[pivot];
arr[pivot] = arr[j];
arr[j] = temp;
printf("排序后的数组: ");
for (int k = left; k <= right; k++) {
printf("%d ", arr[k]);
}
printf("\n");
quick_sort(arr, left, j - 1);
quick_sort(arr, j + 1, right);
}
}
```
在每次交换元素后,我们输出一下当前的数组,以便观察排序的过程。需要注意的是,为了输出正确的数组,我们需要在递归调用前输出一次。