c语言多个数据从小到大排序
时间: 2024-10-05 12:00:49 浏览: 26
C语言实现3个数从小到大排序/输出的方法示例
在C语言中,如果你需要对一组数据进行排序,比如整数或浮点数数组,通常会使用标准库函数`qsort()`或者自定义排序算法如冒泡排序、选择排序、插入排序等。这里以快速排序为例,因为它的平均时间复杂度较低:
```c
#include <stdio.h>
#include <stdlib.h>
// 快速排序函数
void quick_sort(int arr[], int left, int right) {
if (left < right) {
int pivot_index = partition(arr, left, right); // 分区操作
quick_sort(arr, left, pivot_index - 1); // 对左半部分递归排序
quick_sort(arr, pivot_index + 1, right); // 对右半部分递归排序
}
}
// 计算分区索引的辅助函数
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++; // 移动边界
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
int temp = arr[i + 1];
arr[i + 1] = arr[high];
arr[high] = temp;
return i + 1;
}
int main() {
int numbers[] = {5, 3, 8, 1, 6, 2, 9, 4, 7};
int size = sizeof(numbers) / sizeof(numbers[0]);
quick_sort(numbers, 0, size - 1);
printf("Sorted array: ");
for (int i = 0; i < size; i++)
printf("%d ", numbers[i]);
printf("\n");
return 0;
}
```
阅读全文