用其他方法写这个代码
时间: 2024-01-28 17:03:51 浏览: 20
好的,这里给出一种使用快速排序算法对整型数组进行排序的方法:
```c
#include <stdio.h>
void quick_sort(int arr[], int left, int right);
int main() {
int arr[10];
printf("请输入10个整数:\n");
for (int i = 0; i < 10; i++) {
scanf("%d", &arr[i]);
}
quick_sort(arr, 0, 9);
printf("排序后的结果为:\n");
for (int i = 0; i < 10; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
void quick_sort(int arr[], int left, int right) {
if (left >= right) {
return;
}
int pivot = arr[left];
int i = left, j = right;
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);
}
```
该程序同样使用for循环和scanf函数读取用户输入的10个整数,存储在数组arr中。接着调用quick_sort函数进行排序,最后使用for循环输出排序后的结果。
quick_sort函数使用的是快速排序算法,对数组进行从小到大的排序。快速排序的基本思路是,选定一个pivot元素,将数组中的其他元素按照大小分为两个部分,小于pivot的元素放在左边,大于pivot的元素放在右边。然后对左、右两部分分别递归进行同样的操作,最终得到有序数组。
注意,在quick_sort函数中,使用了数组名arr作为函数的形参,以及左右两个指针left和right来标记排序的范围。此外,程序还使用了递归的方法来实现快速排序算法。