高速分拣
#include<iostream> #include<iterator> #include<vector> #include<algorithm> #include<time.h> using namespace std; /* *高速排序问题 */ void Fast_sort(vector<int>& a,int beg,int end) { if(beg+1>=end) return; int key = beg; for (int i = beg , j = end; i < j; ) { if(key == i) { do { j--; } while (a[j]>a[key]); key = j; }else { do { i++; } while (a[i]<a[key]); key = i; } swap(a[i],a[j]); } Fast_sort(a,beg,key); Fast_sort(a,key+1,end); } int main() { long start, end; vector<int> vec; copy(istream_iterator<int>(cin),istream_iterator<int>(),back_inserter(vec)); start = clock(); Fast_sort(vec,0,vec.size()); end = clock(); copy(vec.begin(),vec.end(),ostream_iterator<int>(cout," ")); cout<<endl; cout <<"程序执行时间(单位:毫秒): "<< end-start <<endl; }
版权声明:本文博主原创文章,博客,未经同意不得转载。