- 冒泡排序是属于最为基础的一种排序, 也是最简单的一种排序。
- 实现思路:
- 首先创建一个数组 int[] array={80,60,20,40,65,30,10};
- 思考怎么让相邻的数进行比较 (进行外内循环进行比较)
- 判断两个元素的大小,如果前面一个元素大于后面一个元素则进行交换。
public class Bubble {
public static void main(String[] args) {
int[] array={80,60,20,40,65,30,10};
for(int i=0;i<array.length;i++){
for(int j=0;j<array.length-i-1;j++){//外层循环
if(array[j+1]>array[j]){//内层循环
//如果条件满足,则进行交换,
int temp=array[j+1];
array[j+1]=array[j];
array[j]=temp;
}
}
}
System.out.println("冒泡排序后:");
for(int i:array){
System.out.print(i+" ");
}
}
}
1.原始数组进行排列:
80,60,20,40,65,30,10
2.第一次排列比较,拿60和80比较:
60,80,20,40,65,30,10
3.第2次排列,拿80和20比较:
60,20,80,40,65,30,10
4.第3次排列,拿80和40比较:
60,20,40,80,65,30,10
5.第4次排列,拿80和65比较:
60,20,40,65,80,30,10
6.第5次排列,拿80和30比较
60,20,40,65,30,80,10
7.第6次排列,拿80和10进行比较
60,20,40,65,30,10,80
从以上的比较排序可以得知,进行了6次排列,第一个数和其他数比较完成,发现比较6次才进行完成,因此可以得出外循环次数应该为数组长度-1,即(int i=0;i<array.length;i++);然后内循环控制比较两个数进行比较的次数,可以发现80和其他数比较了5次,每次数比较都比排列次数少1次,因此可以得出,即(int j=0;j<array.length-i-1;j++)