new [] arr = {4,3,2,1} // new一个新的数组
分析:1.像金鱼吐泡泡一样,水底→水面,泡泡也是小→大的。冒泡排序法:每次都从第一个元素开始比较,相邻两个元素排序,如果前>后,则调换位置,最终最大的数字会出现在最后一位。
2.数组:arr(排序,每次循环都从第一个数组开始)
第1次冒泡排序结果:3,2,1,4(红色字体固定,下次不用再参加排序)
第2次冒泡排序结果:2,1,3,4(红色字体固定,下次不用再参加排序)
第3次冒泡排序结果:1,2,3,4(红色字体固定,下次不用再参加排序)
经过3次冒泡排序已经完成了排序。因为第3次中“2"已经固定,下次不用再参加排序。那“1”不再有相邻的值与它排序比较,则排序结束。数组长度为4,只需要循环比较3次即可。
代码: for(int x=0;x<array.length-1;x++){ // 外层循环 控制数组需要几次冒泡排序
for(int y =0;y<array.length-x-1;y++){//-x:最后一位固定下次不用再参加排序。-1:防止if中y+1的脚标越界。
if(array[y] > array[y+1]){// 相邻的两个值进行比较
int a =0;
a = array[y+1];
array[y+1] = array[y];
array[y] = a;
}
}
}