算法思想
1、两两相邻的元素进行比较,如果前面元素大于后面元素就交换两个元素的位置,最终的结果是最大的一个元素移动到了最后的位置。 我们暂称这个过程为冒泡。2、如果有n个元素那么【冒泡操作】重复n-1次即可排序完成。
学习过程思想
1.一共两层for循环
2.第一个for循环是控制进行几次冒泡的,所以循环的次数的是待排序序列元素个数减一次。
3.第二个for循环是控制每一趟冒泡两两元素间进行比较的,相邻两两比较,若反序则交换。
注意:j从0到n-1,j+1从1到n这个地方我第一次忽略-1,即j从0到n,那么j+1就会超过了排序序列的最大长度。
代码实践
#include <stdio.h> int main() { int arr[10]; printf("请输入10个数据:"); for (int i = 0; i < 10; ++i) { scanf("%d", &arr[i]); } int temp; for (int i = 0; i < 10; i++) { for (int j = 0; j < 10 - i - 1; j++) { if (arr[j] > arr[j + 1]) { temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } printf("升序输出数组:"); for (int i = 0; i < 10; ++i) { printf("%d ", arr[i]); } return 0; }
运行结果
标签:10,arr,int,元素,冒泡排序,++,详解,冒泡 From: https://www.cnblogs.com/michael-study/p/17899627.html