//对一系列数进行升序排列
class example{
  static void sort(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 t=a[i];
 a[i]=a[j];
 a[j]=t;
        }
      }
      System.out.print(a[i]+" ");
    }
  }
  public static void main(String []args){
    int []a={10,20,9,25,11,13};
    sort(a);
  }
}
这个程序对一固定数组中的数字进行升序排列,问题是现在想要随机输入一系列数字进行排序,查找了java书中的I/O包,可使用BufferedReader br=new BufferedReader(new InputStreamReader(System.in))进行随机输入,可是缓冲输入流只能输入字符串,那么数字类型的怎么随机输入?有没有直接的方法?还是要进行Integer.parseInt()转换类型?谢谢D人指点~~

解决方案 »

  1.   

    用Math.random()或者java.util.Random类的一系列方法,具体用法请参阅Javadoc。另外,Arrays.sort()方法可以实现排序,不需要自己写方法。
      

  2.   

    我的意思是我想自己随便输入一系列数字(就是说我想输入啥就输入啥),然后进行排序,楼上说的Math.random或java.util.Random类不能实现这个目的吧~~那么用什么方法实现?另外再请问楼上,你说的Arrays.sort()方法括号里的参数是数组类型的吗?比如说:
    int []a={10,20,9,25,11,13};
    Arrays.sort(a);就能实现排序吗?我试了一下不行,是不是不是这样用?
      

  3.   

    你想自己输入的话,那当然只能用System.in啦,没有别的办法。另:Arrays是在java.util包里面的,可以实现功能很强,效率很高的排序。
      

  4.   

    你的意思是想让程序随即产生一组数,然后测试你的程序是否正确,对吧?
       教你个方法:
    long[] array = new long[20];//建一个数组
    for(int i=0; i<10000;i++)  //随即产生10000个数组
    {
        for(int j=0;j<20;j++)
        {   
              array[j]=(int)(java.lang.Math.Random()*100000);//随即赋值
        }    
        .....
        .....//调用你的排序方法}
      

  5.   

    public class RandomDemo {
    public static void main(String[] args) {
               int [] test = getTestData(10);
               Arrays.sort(test);
    } public static int[] getTestData(int size) {
    Random r = new Random();
    int[] res = new int[size];
    for (int i = 0; i < size; i++) {
    res[i] = r.nextInt();
    }
    return res;
    }
    }
      

  6.   

    int [] intArray = new int[20];
    int index = 0;
    Scanner sc = new Scanner(System.in);//Scanner在java.util.*包中

    System.out.println("请输入整数,并以true结束");
    while(sc.hasNextInt()){
    int j = sc.nextInt();
    intArray[index++] = j;
        if(sc.hasNextBoolean()){
         sc.close();
         break;
        }
    }
                       sort(intArray);
      

  7.   

    Dan1980(不用IDE的大傻瓜) ( ) 信誉:98  2006-03-20 17:22:00  得分: 0  
    你想自己输入的话,那当然只能用System.in啦,没有别的办法。
    另:Arrays是在java.util包里面的,可以实现功能很强,效率很高的排序。
    -------------------------------------------------------------------------
    Arrays.sort()用法我明白了,可是你说只能用System.in,说的还不够具体啊,能不能再具体点啊?
    另外请问楼上你写的int [] intArray = new int[20];为什么要让它成为固定大小的数组,现在我就是想自己随便输入一些数字,并不知道数组的长度,另外你说的Scanner我试了一下,不行啊,编译提示说Scanner sc = new Scanner(System.in);这一行 cannot resolve symbol,这是怎么回事?
    注:有的朋友可能误会了,我并不是想要程序随机产生一些数,只是自己想要随意输入一些数~~
      
     
      

  8.   

    循环执行
     system.in来输入。
    直道满足你的特定结束操作。比如输入字符C。
    然后开始排吧。