c99:给n个整数排序
时间: 2024-09-28 12:17:45 浏览: 23
在C99标准中,对一组整数进行排序可以使用多种算法,其中最为常见的可能是快速排序(Quicksort)、归并排序(Merge Sort)或插入排序(Insertion Sort)。这里以快速排序为例,它是一种高效的通用排序算法:
```c
#include <stdio.h>
// 快速排序函数
void quicksort(int arr[], int low, int high) {
if (low < high) {
// 选择一个基准值(通常取中间元素)
int pivot = arr[low + (high - low) / 2];
// 分割数组,使得小于基准的放在左边,大于的放在右边
int i = low, j = high;
while (i <= j) {
while (arr[i] < pivot)
i++;
while (arr[j] > pivot)
j--;
if (i <= j) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
i++;
j--;
}
}
// 对左右两部分递归地进行排序
quicksort(arr, low, j);
quicksort(arr, i, high);
}
}
int main() {
int n, *numbers;
printf("Enter the number of integers: ");
scanf("%d", &n);
numbers = malloc(n * sizeof(int));
printf("Enter the integers: ");
for (int i = 0; i < n; i++) {
scanf("%d", &numbers[i]);
}
quicksort(numbers, 0, n - 1);
printf("Sorted integers: ");
for (int i = 0; i < n; i++) {
printf("%d ", numbers[i]);
}
printf("\n");
free(numbers); // 别忘了释放内存
return 0;
}
```