c语言 冒泡排序 思路
时间: 2023-12-21 19:32:18 浏览: 83
冒泡排序是一种简单的排序算法,它重复地遍历要排序的列表,比较相邻的两个元素,并按照大小交换它们的位置,直到整个列表排序完成。冒泡排序的基本思路如下:
1. 比较相邻的两个元素,如果前一个元素大于后一个元素,则交换它们的位置。
2. 对每一对相邻元素重复执行步骤1,直到最后一对元素。
3. 重复步骤1和步骤2,直到没有任何一对元素需要比较。
下面是一个C语言实现冒泡排序的示例代码:
```c
#include <stdio.h>
int main() {
double arr[10] = {1.78, 1.77, 1.82, 1.79, 1.85, 1.75, 1.86, 1.77, 1.81, 1.80};
// 比较n-1轮
for (int i = 1; i <= 9; i++) {
// 两两比较,范围不断缩小
for (int j = 0; j <= 9 - i; j++) {
if (arr[j] > arr[j + 1]) {
double temp = arr[j + 1];
arr[j + 1] = arr[j];
arr[j] = temp;
}
}
}
// 打印排序后的数组
for (int i = 0; i < 10; i++) {
printf("%.2f ", arr[i]);
}
return 0;
}
```
这段代码使用了一个大小为10的数组来演示冒泡排序的过程。首先,我们通过两个嵌套的循环来实现比较和交换操作。外层循环控制比较的轮数,内层循环控制每一轮的比较次数。在每一轮中,我们比较相邻的两个元素,如果前一个元素大于后一个元素,则交换它们的位置。通过多次重复这个过程,最终将数组中的元素按照从小到大的顺序排序。
运行以上代码,将会输出排序后的数组:1.75 1.77 1.77 1.78 1.79 1.80 1.81 1.82 1.85 1.86
阅读全文