/*如果第二个数比第一个数大,则将第二个值赋给第一个.
* 将第二个数放到第一个.再循环时就是拿原来的第一个(现在是第二个)和第三个比.
* 如果比第三个小.就把第一个(现在的第二个)和第三个换个位置
* 先将第二个元素赋给一个temp中间变量.再将第一个赋给第二个
* 再将中间变量的值赋给第一个元素
*/
/*arr.length=6 索引位置为0-5
* i=0 j=0...5 arr.length-i-1=5 arr.length-1
* i=1 j=0...4 arr.length-i-1=4 arr.length-2
* i=2 j=0...3 arr.length-i-1=3 arr.length-3
* i=3 j=0...2 arr.length-i-1=2 arr.length-4
* i=3 j=0...1 arr.length-i-1=1 arr.length-5
* i=3 j=0...0 arr.length-i-1=0 arr.length-6
*/
public class BubbleSort {
public static void main(String[] args) {
int arr[]= {24,12,76,9,3,45};
for (int i : arr) {
System.out.println(i);
}
System.out.println("==========");
for (int i = 0; i < arr.length; i++) {
//外层循环控制次数
for (int j = 0; j < arr.length-i-1; j++) {//[24,12,76,9,3,45] arr.length-i-1为了减少多余的重复比较.经测试直接arr.length-1也是可以实现的
//内层循环控制位置交换
if (arr[j]<arr[j+1]) {
int temp=arr[j+1];
arr[j+1]=arr[j];
arr[j]=temp;
}
System.out.println(arr[j]+" ");
}
System.out.println("******");
}
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]+" ");
}
// System.out.println(arr.length);
}
}