编程论坛's Archiver

czpae86 发表于 2008-2-20 21:13

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

程序如下:但输出结果不对!数组出问题,不知道怎么改?
结果:
2 2 2 2 2 2 2 2 2 2
2 2 2 2 2 2 2 2 2 2
都是打印输入的第一个数!!
请指教!

import java.io.IOException;
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;
                            }
                                   
                    }
            }
    }
}

czpae86 发表于 2008-2-20 21:38

自己顶!

czpae86 发表于 2008-2-20 21:39

import java.io.IOException;
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]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.