交换排序-快速排序

来源:互联网 发布:python httperror代码 编辑:程序博客网 时间:2024/05/01 16:27
#include<iostream>using namespace std;#include<vector>class QuickSort{private:    vector<int>A;public:    QuickSort(vector<int>B):A(B){  Sort(A.begin(),A.end()-1);  }    static vector<int>::iterator Partition(vector<int>::iterator first,vector<int>::iterator end)    {        vector<int>::iterator ib=first;        vector<int>::iterator ie=end;        while(ib<ie)        {              while(ib<ie){              if(*ib>*ie)              {                int temp=*ib;                *ib=*ie;                *ie=temp;                ib++;                break;              }                else ie--;            }            while(ib<ie){               if(*ie<*ib)               {                int temp=*ib;                *ib=*ie;                *ie=temp;                ie--;                break;               }               else ib++;            }        }        return ie;    }    void Sort(vector<int>::iterator first,vector<int>::iterator end)    {         if(first<end)        {            vector<int>::iterator id=Partition(first,end);            Sort(first,id-1);            Sort(id+1,end);        }    }     void Show(){        vector<int>::iterator is;        for(is=A.begin();is!=A.end();is++)            cout<<*is<<" ";        cout<<endl;    }};int main(){    int n;    cout<<"向量大小:";    cin>>n;    vector<int>B(n);    for(int i=0;i<n;i++)        cin>>B[i];    QuickSort A(B); //构造时调用快速排序    A.Show();    return 0;}
原创粉丝点击