请用C语言编写程序实现快速排序:已知关键字序列为{52, 49, 80, 36, 14, 58, 61, 97, 23, 75 },请对此序列进行快速排序,并输出结果。
时间: 2023-08-21 18:06:25 浏览: 84
好的,下面是快速排序的C语言代码:
```c
#include <stdio.h>
void quick_sort(int arr[], int left, int right){
if(left < right){
int i = left, j = right, pivot = arr[left];
while(i < j){
while(i < j && arr[j] >= pivot) j--;
if(i < j) arr[i++] = arr[j];
while(i < j && arr[i] < pivot) i++;
if(i < j) arr[j--] = arr[i];
}
arr[i] = pivot;
quick_sort(arr, left, i - 1);
quick_sort(arr, i + 1, right);
}
}
int main(){
int arr[] = {52, 49, 80, 36, 14, 58, 61, 97, 23, 75};
int len = sizeof(arr) / sizeof(int);
quick_sort(arr, 0, len - 1);
for(int i = 0; i < len; i++){
printf("%d ", arr[i]);
}
return 0;
}
```
输出结果为:`14 23 36 49 52 58 61 75 80 97`。
其中,`quick_sort` 函数为快速排序的主体代码,通过递归调用实现排序。在 `main` 函数中,先定义了一个待排序的数组 `arr`,然后计算出数组长度 `len`,最后调用 `quick_sort` 函数进行排序,并输出结果。
阅读全文