如下代码有什么错误?
public class ArraySelect {

    


 static void SelectSort(int[] arrays){
 
for(int i=0;i<arrays.length-1;i++){
int  currentMinIndex=i;
for(int j=i+1;j<arrays.length;j++){
if(arrays[currentMinIndex]>arrays[i]){
currentMinIndex=j;
}

}
if(currentMinIndex!=i){
int temp=arrays[i];
arrays[i]=arrays[currentMinIndex];
arrays[currentMinIndex]=temp;

}



}
for(int i=0;i<arrays.length;i++){
System.out.println(i);
}

}
 

 }public class TestArray { public static void main(String[] args) {
int[] arrays={5,8,5,77,9,-9};
ArraySelect.SelectSort(arrays);

}
}

解决方案 »

  1.   

    if(arrays[currentMinIndex]>arrays[i]){   这里i应该是j吧
      

  2.   

    public static void main(String[] args) {
    int[] arrs={1,10,9,18,5,7,12};
    for (int i = 0; i < arrs.length; i++) {
    for (int j = i+1; j < arrs.length; j++) {

    if (arrs[i]>arrs[j]) {
    int tep = 0;
    tep=arrs[i];
    arrs[i]=arrs[j];
    arrs[j]=tep;
    }
    }
    System.err.print(arrs[i]);
    System.err.print(" ");
    }
    }
    不如冒泡排序 都一样的
      

  3.   

    public class TestPaiXu {
     
        public static void main(String[] args) {
            int[] array = {3,2,6,1,5,9,8,-2};
            zhijie(array);
            maopao(array);
        }
         
        //直接排序
        public static void zhijie(int[] array){
            for(int i=0;i<array.length-1;i++){
                int temp;
                for(int j = i+1;j<array.length;j++){
                    if(array[i]>array[j]){
                        temp = array[i];
                        array[i] = array[j];
                        array[j] = temp;
                    }
                }
            }
             
            for(int a : array){
                System.out.println(a);
            }
        }
         
        //冒泡排序
        public static void maopao(int[] array){
            for(int i=0;i<array.length-1;i++){
                int temp;
                for(int j = 0;j<array.length-1-i;j++){
                    if(array[j]>array[j+1]){
                        temp = array[j+1];
                        array[j+1] = array[j];
                        array[j] = temp;
                    }
                }
            }
             
            for(int a : array){
                System.out.println(a);
            }
        }
    }
      

  4.   

    1.第一个if里面应该大于arrays[j]
    2.第二个if位置放的不对,应该放在第一个for循环中,而且条件判断多余。