一个int数组,有10个大大小小的数字,把他从小到大排出来。  
方法:在没排序前,先找到数组里最小的一个数跟第一个数调换位置,在剩下在9个数字中在找到他们间最小的数又跟第一个调换位置依次类推,只到排完为止。  
我要的就是以这种方法排序,我不知道怎么该怎么写,哪位能帮帮忙,谢谢!!!  
 
最好能帮我写出来   不用冒泡发啊!!!! 老师说只用一个for就可以出来。

解决方案 »

  1.   

    不如采用Java自带的Collection.sort方法了呢
      

  2.   

    int[] a={1,2,4,32,5,3,34,2,34,23};
         int temp ;
         for(int i= 0 ;i<a.length-1;i++)
         {
         for(int j=i+1 ;j<a.length;j++)
         {
         if(a[i]>a[j])
         {
         temp = a[i];
         a[i] = a[j];
         a[j] = temp;
         }
         }
         }
         for(int i = 0 ;i<a.length-1 ; i++)
         {
         System.out.println(a[i]);
         }
      

  3.   

    老师说只用一个for就可以出来。
    似乎不大可能吧,还是说main方法只用一个for循环,别的循环不算啊,哈哈。
    一个for的你们老师讲了以后记得来公布答案哈,这是你要的算法
    public class sort {
        int num[]={4,6,23,45,32,5,3,56,34,2};
        //找剩下的最小数位置
        public int findMin(int begin){
            int key=num[begin];
            int j=begin;
            for(int i=begin;i<num.length;i++){
                if(key>num[i]){
                    key=num[i];
                    j=i;
                }
            }
            return j;
        }
        //互换位置
        public void change(int begin,int key){
            if(key!=begin){
                int temp = num[begin];
                num[begin]=num[key];
                num[key]=temp;
            }
        }
        //打印看看
        public void pr(){
            for(int i=0;i<num.length;i++){
                System.out.print(num[i]+" ");
            }
        }
        public sort() {
        }
        public static void main(String[] args){
            sort s=new sort();
            s.pr();
            System.out.println();
            for(int i=0;i<s.num.length;i++){
                s.change(i,s.findMin(i));
            }
            s.pr();
        }
    }