arr[12] = {6, 7, 11, 10, 4, 11, 9, 7, 3, 1, 8, 0}; 用(1)冒泡(2)选择(3)插入 排序按照从小到大给数组排序。C语言
时间: 2024-12-02 09:28:18 浏览: 0
在C语言中,我们可以分别使用冒泡排序、选择排序和插入排序算法对给定的数组`arr[12]`进行从小到大的排序。这里我会简单地描述每种排序方法:
1. **冒泡排序**:
冒泡排序通过反复遍历数组,比较相邻元素并交换位置,使得较大的数逐渐“浮”到数组的末尾。以下是冒泡排序的C语言代码实现:
```c
#include <stdio.h>
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;
}
}
}
}
// 使用数组和长度
int main() {
int arr[] = {6, 7, 11, 10, 4, 11, 9, 7, 3, 1, 8, 0};
int n = sizeof(arr) / sizeof(arr[0]);
bubble_sort(arr, n);
// 打印排序后的数组
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
2. **选择排序**:
选择排序则是每次从未排序的部分找到最小的元素,放到已排序部分的末尾。C代码如下:
```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;
}
}
// ... 主函数和打印数组类似
```
3. **插入排序**:
插入排序通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。C语言实现如下:
```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;
}
}
// ... 主函数和打印数组类似
```
阅读全文