整数排序 II

来源:互联网 发布:嘟嘟牛破译软件 编辑:程序博客网 时间:2024/06/06 11:00

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

解题代码: void sortIntegers2(vector<int>& A) {
        // Write your code here
             QuickSort(A,0,A.size()-1);
    }
    void QuickSort(vector<int>& A,int first,int end)
    {
        if(first<end) {
           int pivot=Partition(A,first,end);
            QuickSort(A,first,pivot-1);
            QuickSort(A,pivot+1,end);
        }
    }
    int Partition(vector<int>& A,int first,int end)
    {
        int i=first;
        int j=end;
        while(i<j)
       {
           while(i<j&&A[i]<=A[j]) j--;
           if(i<j){
               swap(A[i],A[j]);
               i++;
           }
           while(i<j&&A[i]<=A[j]) i++;
           if(i<j){
               swap(A[i],A[j]);
               j--;
           }
     }
     return i;
    }
};

解题思路;换为其他算法,参考课本即可。

原创粉丝点击