最后有源码
创建一个java文件
psvm快捷创建main方法
?创建一个int类型的集合 和一个用于交换的中间值
?开始外循环
要遍历的次数 集合的长度 减一,因为最后一次只需要做四次判断 即(list长度减一)
?内循环
内循环,一次比较相邻两个数的大小,遍历一次后,把数组中第i小的数放在第i个位置上
比较相邻的元素,如果前面的数小于后面的数,就交换
将 中间值赋值 list[j+1]的值;
list[j+1]赋值 list[j]的值;
list[j]赋值 temp后的值,即list[j+1]的值, 完成 list[j] 和list[j+1]的值的交换
输出第几次循环 第几次交换和结果。
?整体代码
?运行结果
?全部代码
//需要排序的集合
int[] list = {3, 4, 1, 5, 2};
//创建一个用于交换的中间值
int temp = 0;
//要遍历的次数 集合的长度 减一,因为最后一次只需要做四次判断 即(list长度减一)
for (int i=0; i < list.length - 1; i++) {//外循环
System.out.println("遍历的第" +(i+1) + "遍");
//内循环,一次比较相邻两个数的大小,遍历一次后,把数组中第i小的数放在第i个位置上
for (int j=0; j < list.length - 1 - i; j++) {
// 比较相邻的元素,如果前面的数小于后面的数,就交换
if (list[j] < list[j + 1]) {
temp = list[j + 1];//将 中间值赋值 list[j+1]的值
list[j + 1] = list[j];//list[j+1]赋值 list[j]的值
list[j] = temp;//list[j]赋值 temp后的值,即list[j+1]的值, 完成 list[j] 和list[j+1]的值的交换
}//输出第几次循环 第几次交换
System.out.format("第"+(i+1)+"遍的第"+(j+1)+"次交换:");
//遍历每次循环完 交换的结果
for (int list2 : list) {
//输出集合
System.out.print(list2);
}
//换行,每次输出结果后换一行
System.out.println("");
}//内循环
//外循环 每次的结果
System.out.format("第 "+(i+1)+"遍最终结果:");
for (int list2 : list) {
//输出集合
System.out.print(list2);
}
//分隔符 便于查看
System.out.println("\n#########################");
}
}
|