如何用C语言实现整数数组的升序或降序排序?
时间: 2024-11-17 08:28:53 浏览: 19
在C语言中,我们可以使用循环和条件判断来实现整数数组的排序。这里我会分别介绍冒泡排序(升序和降序)、选择排序和插入排序的简单示例。
**1. 冒泡排序(升序):**
```c
void bubble_sort(int arr[], int n) {
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - 1 - i; j++) {
if (arr[j] > arr[j + 1]) {
// 交换元素
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
// 使用时,传入数组和长度
bubble_sort(array, array_size);
```
**2. 冒泡排序(降序):**
只需将比较条件改为 `arr[j] < arr[j + 1]`,其他部分保持不变即可。
**3. 选择排序(升序):**
```c
void selection_sort(int arr[], int n) {
for (int i = 0; i < n - 1; i++) {
int min_index = i;
for (int j = i + 1; j < n; j++) {
if (arr[j] < arr[min_index]) {
min_index = j;
}
}
// 交换最小元素到当前位置
int temp = arr[i];
arr[i] = arr[min_index];
arr[min_index] = temp;
}
}
```
**4. 插入排序(升序):**
```c
void insertion_sort(int arr[], int n) {
for (int i = 1; i < n; i++) {
int key = arr[i];
int j = i - 1;
while (j >= 0 && arr[j] > key) {
arr[j + 1] = arr[j];
j--;
}
arr[j + 1] = key;
}
}
```
以上代码都是在假设数组的长度已知的情况下。使用时,记得先包含头文件 `<stdio.h>` 并处理输入数组的情况。
阅读全文