#关于冒泡排序自己的分析
package com.tao.array;
import java.util.Arrays;
public class Demo03 {
public static void main(String[] args) {
int[] a={1,2,3,4,5};
System.out.println(Arrays.toString(a));
Demo03 demo03 = new Demo03();
demo03.pai(a);
System.out.println(Arrays.toString(a));
}
public int[] pai(int[] a){
int temp=0;
for (int i = 0; i <a.length-1; i++) { //数组下标永远比长度小一,减一是避免溢出
for (int j = 0; j <a.length-1-i; j++) { //减i,经历一次循环后得到一个最小值,下一次循环没必要再把定的值拿出来比较
if (a[j+1]>a[j]) //i=0时比较到a[3]和a[3+1]位a[]最多也是下标为4刚好比完 /2,3,4,5,1/
temp =a[j]; //i=1时 j<5-1-1,能比较到 a[2]和a[2+1] 只比较到了下标为3 后面还有一个下标为4的值/1/已经是最小的定了/3,4,5,2,1/
a[j]=a[j+1]; //i=2时 比较到j[1]和j[1+1] 比较到下标为2 下标3和4已经稳了不用比较了所以(j <a.length-1-i)
a[j+1]=temp;
}
}
return a;
}
}
输出结果:看注释有详细解析,为什么要(j <a.length-1-i)
对应的注释图解