1.思想理解:
1)第一趟:通过前后比较,将较大的往后放,比较至当前数组的末尾,数组的最大值交换到末尾;
2)第二趟:第一趟已经确认了一个元素的位置,从头开始,比较只需到达数组的倒二位置;
3)...总共循环执行n-1次,直到只剩一个元素为止,不需比较;
2.思路:
1)定义一个静态数组 int array[] = { 1 , 7 , 2 , 10 , 22 }
2)循环执行 array.length -1 次 for int i = array.length -1
3)每一趟的比较方法及位置,从头开始,末尾位置随着循环次数的增加减-1
4)比较大小——交换位置 int temp 中间变量
3.走代码:
/*
1)定义一个静态数组 int array[] = { 1 , 7 , 2 , 10 , 22 }
2)循环执行 array.length -1 次 for int i = array.length -1
3)每一趟的比较方法及位置,从头开始,末尾位置随着循环次数的增加减-1
4)比较大小——交换位置 int temp 中间变量
*/
public class bubbleSort{
public static void main(String[] args){
int array[] = { 1 , 7 , 2 , 10 , 22 };
for(int i = array.length -1; i >=1; i--){
for(int j = 0; j < i; j++){ //此处判断条件 j < i ,不可等于,等于就会出现溢出的情况 比如当j = array.length-1
if(array[j] > array[j+1]){
int temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
}
}
}
for(int k = 0; k < array.length ; k++){ // 此处容易犯错,错误:k < array.length -1
System.out.println(array[k]);
}
}
}