public class NumSort {
public static void main(String[] args){
int[] a = new int[args.length];
for (int i=0; i<args.length; i++){
a[i] = Integer.parseInt(args[i]);
}
print(a);
selectionSort(a);
print(a);
}

private static void selectionSort(int[] a){
for(int i=0; i<a.length; i++){
for(int j=i+1; j<a.length; i++){
if(a[j] < a[i]) {
int temp = a[i];
a[i] = a[j];
a[j] = temp;
}


}
}
}

private static void print(int a[]){
for(int i=0; i<a.length; i++) {
System.out.println(a[i] + " ");
}
System.out.println();
}
}

解决方案 »

  1.   

    兄弟太粗心了,
    for(int i=0; i <a.length; i++){ 
    for(int j=i+1; j <a.length; i++){ //j++才对
    if(a[j] < a[i]) { 
    int temp = a[i]; 
    a[i] = a[j]; 
    a[j] = temp; 



      

  2.   

    if(a[j] < a[i]) 
    只用变量j就可以了,别i,j都用,都用的话思路很混乱。
    如:
    if(a[j] < a[j+1]) 
      

  3.   

    简单测试过,如果你的是从小到大的快速排序..程序是没错.
    public class NumberSort { 
    public static void main(String[] args){ 
    int[] a = {1,4,5,7,2,22,15,78,0};
    print(a); 
    selectionSort(a); 
    print(a); 
    }  private static void selectionSort(int[] a){ 
    for(int i=0; i <a.length; i++){ 
    for(int j=i+1; j <a.length; j++){ 
    if(a[j] < a[i]) { 
    int temp = a[i]; 
    a[i] = a[j]; 
    a[j] = temp; 



    }  private static void print(int a[]){ 
    for(int i=0; i <a.length; i++) { 
    System.out.println(a[i] + " "); 

    System.out.println(); 

    }
    结果是:1 




    22 
    15 
    78 
    0 0 





    15 
    22 
    78