请问
[align=left]for(j=i-1; j>=0; j--) {
if(ints[j]>tag) {
ints[j+1] = ints[j];
}
}[/align]

[align=left]for(j=i-1; j>=0&&ints[j]>tag; j--) {
ints[j+1] = ints[j];
}[/align]
有什么区别?

解决方案 »

  1.   

    没区别吧,别把 j>=0&&ints[j]顺序写反就好了
      

  2.   


    可以理解复杂度,可是不太理解产生不同结果,能不能详细说说
    public class test4 { public static void main(String[] args) {
    // TODO Auto-generated method stub
    int ints[]={1,3,6,4,2}; for(int j=3;j>=0&&ints[j]<5;j--) {
    ints[j+1]=ints[j];
    }
    System.out.println(Arrays.toString(ints)); }}运行结果:  这里当j=2时,跳出循环.[1, 3, 6, 4, 4]public class test5 { public static void main(String[] args) {
    // TODO Auto-generated method stub
    int ints[]={1,3,6,4,2}; for(int j=3;j>=0;j--) {
    if(ints[j]<5)
    ints[j+1]=ints[j];
    }
    System.out.println(Arrays.toString(ints));
    }
    }运行结果:[1, 1, 3, 4, 4]