整数排序II

来源:互联网 发布:在哪里买正版windows 编辑:程序博客网 时间:2024/06/05 16:35

给一组整数,按照升序排序。使用归并排序,快速排序,堆排序或者任何其他 O(n log n) 的排序算法。

样例

给出 [3, 2, 1, 4, 5], 排序后的结果为 [1, 2, 3, 4, 5]


public class Solution {    /**     * @param A an integer array     * @return void     */    public int partition(int[] A, int start, int end)    {          if(start<end){           int temp=A[start];           int i=start;           int j=end;           while(i<j)           {               while(i<j&&A[j]>temp) j--;               if(i<j)               {                   A[i]=A[j];                    i++;               }               while(i<j&&A[i]<temp) i++;              if(i<j)              {                  A[j]=A[i];                  j--;              }                          }          A[i]=temp;           return i;          }       return -1;    }    public void quicksort(int[] A, int start, int end)    {        int index=partition(A,start,end);        if(index!=-1){        quicksort(A,start,index-1);        quicksort(A,index+1,end);        }    }    public void sortIntegers2(int[] A) {                          quicksort(A,0,A.length-1);               }}