#include "stdafx.h"
template<class T>
int sort_partition(vector<T>& vec,int p,int r)
{
T x=vec[r];
int i=p-1;
for(int j=p;j<r;++j)
{
if(vec[j]<=x)
{
++i;
T temp=vec[i];
vec[i]=vec[j];
vec[j]=temp;
}
}
T temp=vec[i+1];
vec[i+1]=vec[r];
vec[r]=temp;
return i+1;
}
template<class T>
void quick_sort(vector<T>& vec,int p,int r)
{
if(p<r)
{
int q=sort_partition(vec,p,r);
quick_sort(vec,p,q-1);
quick_sort(vec,q+1,r);
}
}
int main()
{
vector<int> ivec;
for(int i=0;i<10;++i)
{
int n=rand()%10;
ivec.push_back(n);
}
cout<<"before sort"<<endl;
for(vector<int>::iterator iter=begin(ivec);iter!=end(ivec);++iter)
{
cout<<*iter<<" ";
}
cout<<endl;
quick_sort(ivec,0,ivec.size()-1);
cout<<"after quick_sort"<<endl;
for(vector<int>::iterator iter=begin(ivec);iter!=end(ivec);++iter)
{
cout<<*iter<<" ";
}
cout<<endl;
return 0;
}
快速排序
最新推荐文章于 2024-07-17 10:35:12 发布