📦 归档笔记 — 原创建于 WizNote,仅作归档展示;观点以当年为准,非最新。

演示 冒泡法排序 算法

创建时间2018-02-11最后修改2018-04-10原位置/程序员成长之旅/C语言/笔记/字数453图片/附件2
目录:程序员成长之旅/C语言/笔记

注意,较为简陋

#include<stdio.h> //使用冒泡排序进行从小到大排序

int main() {

int i = 0, j = 0, k = 0, l = 0;

int i_Number[101] = { 0 };

int i_Temp = 0, i_How_Many_Num = 0;

scanf("%d", &i_How_Many_Num);//此处应该加判断 输入需要比较多少数字

for (i = 1; i <= i_How_Many_Num; i++) {//此处应该加判断 录入数据

scanf("%d", &i_Number[i]);

}

for (j = 1; j <= i_How_Many_Num - 1; j++) {//控制共需要多少次比较 因为是两个两个比较 所以-1

for (k = 1; k <= i_How_Many_Num - j; k++) {//控制当前比较数字

if (i_Number[k]>i_Number[k+1]) {//如果前一个数大于后面一个数 则互换

//互换开始

i_Temp = i_Number[k];

i_Number[k] = i_Number[k + 1];

i_Number[k + 1] = i_Temp;

}

}

}

for (l = 1; l <= i_How_Many_Num; l++) {

printf("%d\t", i_Number[l]);

}

}

运行截图:

🖼 图片占位(归档模式)图片见原始导出:%E6%BC%94%E7%A4%BA%20%E5%86%92%E6%B3%A1%E6%B3%95%E6%8E%92%E5%BA%8F%20%E7%AE%97%E6%B3%95.assets/1803860671.png

注意:一开始误认为冒泡法排序方法是选择法排序请不要混淆!

其他版本:(注意,此版本较容易混淆,不推荐使用)

涂黄处为变动

#include<stdio.h> //使用冒泡排序进行从小到大排序

int main() {

int i = 0, j = 0, k = 0, l = 0;

int i_Number[101] = { 0 };

int i_Temp = 0, i_How_Many_Num = 0, i_Flag = 0;

scanf("%d", &i_How_Many_Num);//此处应该加判断 输入需要比较多少数字

for (i = 1; i <= i_How_Many_Num; i++) {//此处应该加判断 录入数据

scanf("%d", &i_Number[i]);

}

i_Flag = i_How_Many_Num;

for (j = 1; j <= i_How_Many_Num - 1; j++) {//控制共需要多少次比较 因为是两个两个比较 所以-1

i_Flag--;

for (k = 1; k <= i_Flag; k++) {//控制当前比较数字

if (i_Number[k]>i_Number[k+1]) {//如果前一个数大于后面一个数 则互换

//互换开始

i_Temp = i_Number[k];

i_Number[k] = i_Number[k + 1];

i_Number[k + 1] = i_Temp;

}

}

}

for (l = 1; l <= i_How_Many_Num; l++) {

printf("%d\t", i_Number[l]);

}

}

注意:“i_Flag--;”代码位置很关键,容易出错!