关于快速排序的c++算法

#include<iostream> #include<vector> #include<algorithm> using namespace std; class Q_Sort { private: vector<int> buf; protected: int partition(int p,int r); void q_sort(int p, int r); public: Q_Sort(int n); void QuickSort(){ q_sort(0,buf.size()-1);} void Q_Show(); }; Q_Sort::Q_Sort(int n) { for(int i=0;i<n;i++) { int m; cin>>m; buf.push_back(m); } } int Q_Sort::partition(int p,int r) { int x=buf.at(r); int i=p-1; for(int j=p;j<r;j++) { if( buf.at(j)<=x) { i++; swap(buf.at(i),buf.at(j)); } } swap( buf.at(i+1), buf.at(r)); return i+1; } void Q_Sort::q_sort(int p,int r) { if( p<r) { int q=partition(p,r); Q_Sort::q_sort(p,q-1); Q_Sort::q_sort(q+1,r); } } void Q_Sort::Q_Show() { for( vector<int>::iterator it=buf.begin();it!=buf.end();it++) cout<<*it<<" "; cout<<endl; } int main() { int a=4,b=3; int m; cin>>m; Q_Sort qs(m); //qs.Q_Show(); qs.QuickSort(); qs.Q_Show(); return 0; }

你可能感兴趣的:(关于快速排序的c++算法)