用c语言编写一个程序,对用户输入的若干整数,采用快速排序算法,完成从小到大的排序
时间: 2023-07-15 12:11:44 浏览: 116
以下是用C语言编写的快速排序算法程序:
```c
#include <stdio.h>
void quick_sort(int arr[], int left, int right) {
if (left >= right) {
return;
}
int i = left, j = right;
int pivot = arr[left];
while (i < j) {
while (i < j && arr[j] >= pivot) {
j--;
}
arr[i] = arr[j];
while (i < j && arr[i] <= pivot) {
i++;
}
arr[j] = arr[i];
}
arr[i] = pivot;
quick_sort(arr, left, i - 1);
quick_sort(arr, i + 1, right);
}
int main() {
int n;
printf("请输入需要排序的整数个数:");
scanf("%d", &n);
int arr[n];
printf("请输入需要排序的整数:");
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
quick_sort(arr, 0, n - 1);
printf("排序后的结果为:");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
该程序中,`quick_sort` 函数实现了快速排序算法,其中 `arr` 表示待排序的数组,`left` 和 `right` 分别表示数组的左右边界。程序通过不断地交换数组中的元素,使得左边的元素都小于等于基准元素,右边的元素都大于等于基准元素,最终将基准元素放到正确的位置上。然后,递归地对左右两个子数组进行排序,直到整个数组有序。在 `main` 函数中,程序先读入待排序的整数个数和数组,然后调用 `quick_sort` 函数进行排序,最后输出排序后的结果。
阅读全文
相关推荐












