如何用C语言对一组数进行排序?
时间: 2024-10-28 14:15:54 浏览: 14
一个简单的使用冒泡排序法对整数数组进行排序的C语言程序
在C语言中,有多种算法可以用于对一组数进行排序,这里以常见的冒泡排序、选择排序和快速排序为例简单介绍:
1. **冒泡排序**:
- 主要思想:重复遍历数组,每次比较相邻元素,如果它们的顺序错误就交换位置,直到整个序列都有序。
```c
void bubble_sort(int arr[], int n) {
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
```
2. **选择排序**:
- 思想:每次从未排序的部分找出最小值,并放到已排序部分的末尾。
```c
void selection_sort(int arr[], int n) {
for (int i = 0; i < n - 1; i++) {
int min_idx = i;
for (int j = i + 1; j < n; j++) {
if (arr[j] < arr[min_idx])
min_idx = j;
}
int temp = arr[i];
arr[i] = arr[min_idx];
arr[min_idx] = temp;
}
}
```
3. **快速排序**:
- 采用分治策略,选择一个基准值将数组分为两部分,左边所有元素小于基准,右边所有元素大于等于基准,然后递归地对这两部分进行排序。
```c
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);
}
}
```
以上只是简单的示例,实际应用中可能还会考虑性能优化和处理大规模数据等问题。
阅读全文