大家帮帮我,数组内的数从小到大排列要怎么写?

解决方案 »

  1.   

    class sort {
      java.lang.Comparable d[];
      sort(java.lang.Comparable data[]) { d=data; }
      public void quickSort(int l,int r) {
        if(l>=r) return;
        int k=(l+r)/2;
        int last=l;
        swap(k,r);
        for(int i=l;i<r;i++)
          if(d[i].compareTo(d[r])==-1)
            swap(last++,i);  //partition
        swap(last,r);
        quickSort(l,last-1);
        quickSort(last+1,r);
      }
      private void swap(int a,int b)
      {
        java.lang.Comparable t=d[a];
        d[a]=d[b];
        d[b]=t;
      }
      public static void main(String s[])
      {
        //for test
        Integer t[]={ new Integer(4), new Integer(1), new Integer(3) };
        new sort(t).quickSort(0,t.length-1);
        for(int i=0;i<t.length;i++)
          System.out.print(t[i]+" ");
        System.out.println();
      }
    }
    这里使用的是快排,算法复杂度o(nlogn)是平均状况下的。类的使用方法在main里面已经演示了,需要注意的是:为了模拟c++的template,我用了java.lang.Comparable接口,所以在使用基本数据类型的使用要用类封装。例如,int的封装类是Integer,double的封装类是Double。
      

  2.   

    泡泡最简单。。
       
       for(int x=0; x<max-1; x++)
          for( int y=0; y<max-1-x; y++)
                 if(array[y]>array[y+1])
                  {   charge value between array[y] and array[y+1]  
                  ..................}