冒泡排序思路
1.先看张图

是不是看到有点蒙。

10, 9, 5, 3, 4, 7, 6, 19, 12, 11, 15, 13
我们自己一看就知道 3,4,5,6,7,9,10,11,12,13,15 但是程序没有长眼睛
程序只能通过每一个数进行判断
数组的第一个数
首先是 10和9判断 10是大于9的然后是10和9进行互换 数组变为 9,10, 5, 3, 4, 7, 6, 19, 12, 11, 15, 13
继续判断 9和5判断 9是大于5的 然后 9和5互换 数组变为 5, 10,9, 3, 4, 7, 6, 19, 12, 11, 15, 13
继续判断 5和3判断 5是大于3的 然后 5和3互换 数组变为 3, 10, 9,5, 4, 7, 6, 19, 12, 11, 15, 13
继续判断 3和4判断 3是不大于4的 所以不用替换数组还是 3, 10, 9,5, 4, 7, 6, 19, 12, 11, 15, 13
继续判断 3和7判断 3是不大于7的 所以不用替换数组还是 3, 10, 9,5, 4, 7, 6, 19, 12, 11, 15, 13
继续判断 3和6判断 3是不大于6的 所以不用替换数组还是 3, 10, 9,5, 4, 7, 6, 19, 12, 11, 15, 13
继续判断 3和19判断 3是不大于19的 所以不用替换数组还是 3, 10, 9,5, 4, 7, 6, 19, 12, 11, 15, 13
继续判断 3和12判断 3是不大于12的 所以不用替换数组还是 3, 10, 9,5, 4, 7, 6, 19, 12, 11, 15, 13
继续判断 3和11判断 3是不大于11的 所以不用替换数组还是 3, 10, 9,5, 4, 7, 6, 19, 12, 11, 15, 13
继续判断 3和15判断 3是不大于15的 所以不用替换数组还是 3, 10, 9,5, 4, 7, 6, 19, 12, 11, 15, 13
继续判断 3和13判断 3是不大于13的 所以不用替换数组还是 3, 10, 9,5, 4, 7, 6, 19, 12, 11, 15, 13
数组的第二个数
首先是 10和9判断 10是大于9 然后 9和10互换 数组变为 3, 9,10, 5, 4, 7, 6, 19, 12, 11, 15, 13
继续判断 9和5判断 9是大于5 然后 5和9互换 数组变为 3, 5,10, 9, 4, 7, 6, 19, 12, 11, 15, 13
。。。。。。(如第一张图所示)
最终获得排序数组 3,4,5,6,7,9,10,11,12,13,15
代码实现

运行结果

源码
-
//定义个数组名字叫做is
-
int[] is = { 10, 9, 5, 3, 4, 7, 6, 19, 12, 11, 15, 13 };
-
//记录替换数组的下标
-
int count = 0;
-
System.out.print("数组未排序");
-
for (int i = 0; i < is.length; i++) {
-
System.out.print(+is[i]+"\t");
-
}
-
for (int j = 1; j < is.length; j++) {
-
if (is[count] > is[j]) {
-
int temp = is[count];
-
is[count] = is[j];
-
is[j] = temp;
-
}
-
if (j == is.length - 1) {
-
count++;
-
j = count;
-
}
-
}
-
-
System.out.print("\n"+"数组排序");
-
for (int i = 0; i < is.length; i++) {
-
System.out.print(is[i] + "\t");
-
}
-
-
本文深入解析冒泡排序算法,通过实例展示排序过程,解释程序如何比较并交换元素以达到排序目的,适合初学者理解排序算法的基本原理。
1107

被折叠的 条评论
为什么被折叠?



