在C语言中 没有N着杂乱无序的整数,要求将这N个数从小到大排序后输出
时间: 2024-10-08 20:22:51 浏览: 37
在C语言中,对一组整数进行排序并输出常用的是选择排序、插入排序、冒泡排序、快速排序等简单算法,或者是更高效的库函数如qsort(),它利用了Quicksort算法。这里我以快速排序为例来讲解如何操作:
首先,假设我们有一个数组`int arr[] = {<整数列表>}`,我们可以编写一个自定义的快速排序函数`quicksort()`,然后通过递归调用来实现排序。
```c
#include <stdio.h>
void swap(int* a, int* b) {
int temp = *a;
*a = *b;
*b = temp;
}
int partition(int arr[], int low, int high) {
int pivot = arr[high]; // 通常选择最后一个元素作为基准
int i = (low - 1);
for (int j = low; j <= high - 1; j++) {
if (arr[j] < pivot) {
i++;
swap(&arr[i], &arr[j]);
}
}
swap(&arr[i + 1], &arr[high]);
return (i + 1);
}
void quicksort(int arr[], int low, int high) {
if (low < high) {
int pi = partition(arr, low, high);
quicksort(arr, low, pi - 1);
quicksort(arr, pi + 1, high);
}
}
// 输出排序后的数组
void printArray(int arr[], int size) {
int i;
for (i = 0; i < size; i++)
printf("%d ", arr[i]);
printf("\n");
}
int main() {
int N, i;
printf("Enter the number of elements: ");
scanf("%d", &N);
int arr[N];
// 输入整数到数组
for (i = 0; i < N; i++) {
scanf("%d", &arr[i]);
}
quicksort(arr, 0, N - 1); // 对数组进行排序
printf("Sorted array: \n");
printArray(arr, N);
return 0;
}
```
在这个程序中,用户会被提示输入数组的大小和元素,然后快速排序会对数组进行排序,并打印出结果。如果你想了解其他排序算法的实现,也可以询问。
阅读全文