//冒泡排序
public class Bubble{
public static void main(String[] args){
//先静态初始化一个数组
double[] doubles = {111,53.8,666,233,1.23};
//再定义一个中介数
double temp;
//开始排序
for (int i =0; i < doubles.length; i++){
for (int j =0; j < doubles.length - 1; j++){
if (doubles[j] > doubles[j + 1]){//若第j位数据大于第j+1位时,进行互换
temp = doubles[j];//暂存第j位数据
doubles[j] = doubles[j + 1];//将较小值向前推
doubles[j + 1 ] = temp;//将第j位原有数值放入j+1位
}
}
}
System.out.println("重新排序后的数组如下:");
for (int i =0; i < doubles.length; i++){//遍历排序后数组
System.out.print(doubles[i] + "\t");
}
}
}
以上即为冒泡排序完整代码
以下,是本人对该代码思路的解释:
为什么引入temp?
冒泡排序中,temp变量至关重要,temp起到了缓存的作用,有了缓存才能完成数组中两个数据的互换
在第十行中 for (int j =0; j < doubles.length - 1; j++){ 的length-1是本代码细节之一
因为只多需要判断倒数第二位与最后一位孰大孰小即可完成最终的排序,而且若是不-1,当j来到4时,if语句中的doubles[j + 1]超出了doubles的范围限制,程序报错