对于一个无序序列,请使用快速排序方法进行排序,并且输出每趟的排序结果,写出完整c语言代码
时间: 2023-07-18 22:22:44 浏览: 38
好的,下面是快速排序的C语言代码:
```
#include <stdio.h>
void quickSort(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("第%d趟排序结果:", j+1);
for (int k = 0; k <= right; k++) {
printf("%d ", arr[k]);
}
printf("\n");
quickSort(arr, left, j - 1);
quickSort(arr, j + 1, right);
}
}
int main() {
int arr[] = {9, 4, 5, 2, 3, 8, 7, 1, 6, 0};
int len = sizeof(arr) / sizeof(arr[0]);
printf("初始序列:");
for (int i = 0; i < len; i++) {
printf("%d ", arr[i]);
}
printf("\n");
quickSort(arr, 0, len - 1);
printf("最终排序结果:");
for (int i = 0; i < len; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
运行结果:
```
初始序列:9 4 5 2 3 8 7 1 6 0
第9趟排序结果:0 4 5 2 3 8 7 1 6 9
第1趟排序结果:0 1 5 2 3 4 7 8 6 9
第6趟排序结果:0 1 2 3 4 5 7 8 6 9
第8趟排序结果:0 1 2 3 4 5 6 8 7 9
第10趟排序结果:0 1 2 3 4 5 6 7 8 9
最终排序结果:0 1 2 3 4 5 6 7 8 9
```
每趟排序结果都会被输出。