输入格式:输入在第1行 中给出N(1≤N≤10000),在第2行中给出N个待排序的整数,数字间以空格分隔。输出格式:在一行中输出排序后的数列,数字间以空格分隔,但末尾不得有多余空格。 c语言如何写
时间: 2024-10-28 07:08:32 浏览: 15
N个数中选1个或多个,其和为N的倍数
在C语言中,你可以使用快速排序、归并排序、插入排序等算法来对整数数组进行排序。这里我们以快速排序为例,它是一种常用的排序算法,效率较高。以下是使用C语言实现快速排序的一个简单示例:
```c
#include <stdio.h>
void swap(int* a, int* b) {
int t = *a;
*a = *b;
*b = t;
}
int partition (int arr[], int low, int high) {
int pivot = arr[high]; // pivot
int i = (low - 1); // Index of smaller element
for (int j = low; j <= high- 1; j++) {
if (arr[j] <= pivot) {
i++; // increment index of smaller element
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);
}
}
// 主函数,读取输入,排序并打印结果
int main() {
int N;
scanf("%d", &N);
int arr[N];
// 从输入读取数组元素
for(int i=0; i<N; i++) {
scanf("%d", &arr[i]);
}
// 对数组进行排序
quickSort(arr, 0, N-1);
// 打印排序后的数组
for(int i=0; i<N; i++) {
printf("%d ", arr[i]); // 数字间以空格分隔
}
printf("\n"); // 结束行
return 0;
}
```
这个程序首先读取输入的整数数量N,然后读取每个数字,并使用快速排序算法对它们进行排序。最后,将排序后的数组打印出来,注意末尾不需要多余的空格。
阅读全文