注册 登录
编程论坛 J2EE论坛

关于选择排序算法!请帮忙!

czpae86 发布于 2008-02-20 21:13, 636 次点击
程序如下:但输出结果不对!数组出问题,不知道怎么改?
结果:
2 2 2 2 2 2 2 2 2 2
2 2 2 2 2 2 2 2 2 2
都是打印输入的第一个数!!
请指教!

import
import java.util.Scanner;
public class ArrayText {
         
    public static void main(String[] args){
        Scanner s = null;
        int[] a = null;
        System.out.println("请输入十个数");
        try{
            a = new int[10];
            s = new Scanner(System.in);
            for(int i=0;i<a.length;i++){
                a[i] = Integer.parseInt(s.next());
            }
        }catch(Exception e){e.printStackTrace();}
       get(a);
       select(a);
       get(a);
    }
   
    private static void get(int[] a){
        for(int i=0;i<a.length;i++){
            System.out.print(a[i]+" ");
        }
        System.out.println();        
    }
   
    private static void select(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 tmp = a[i];
                    a[i] = a[j];
                    a[j] = tmp;
                }
                    
            }
        }
    }
}
2 回复
#2
czpae862008-02-20 21:38
自己顶!
#3
czpae862008-02-20 21:39
import
import java.util.Scanner;
public class ArrayText {
         
    public static void main(String[] args){
        /*Scanner s = null;
        int[] a = null;
        System.out.println("请输入十个数");
        try{
            a = new int[10];
            s = new Scanner(System.in);
            for(int i=0;i<a.length;i++){
                a[i] = Integer.parseInt(s.next());
            }
        }catch(Exception e){e.printStackTrace();}
        */
    int[] a = {1,2,3,6,5,8,9,7,4,0};
   
       get(a);
       select(a);
       get(a);
    }
   
    private static void get(int[] a){
        for(int i=0;i<a.length;i++){
            System.out.print(a[i]+" ");
        }
        System.out.println();        
    }
   
    private static void select(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 tmp = a[i];
                    a[i] = a[j];
                    a[j] = tmp;
                }
                    
            }
        }
    }
}
1