1.算法描述
对比相邻的两个元素,如果第一个比第二个大,就交换它们(即最大的放最后);
从开始第一对到最后一对,对每一对做相同的对比操作(每一次不处理上一次已得出的最大元素
2.代码实现
public static void main(String[] args) {
List<Integer> list = new ArrayList<>();
for (int i=0;i<6;i++){
list.add((int) (Math.random() * 10));
}
for (int i =0 ;i<=(list.size()-1); i++){// 4个数需要轮回3次,每次轮回内的两两对比次数比上一次数小一
for (int j=0; j< list.size()-i-1; j++){
Integer iileft = list.get(i);//左
Integer iiright = list.get(i + 1);//右
if (iileft > iiright){// 相邻的两元素做对比
list.set(i, iiright);
list.set(i+1, iileft);
}
}
}
}
3.动图演示
借用一个效果图方便理解,源地址为:https://www.cnblogs.com/guoyaohua/p/8600214.html
![](https://img.haomeiwen.com/i12561697/ff891be56b1b6583.gif)
网友评论