快速排序c++实现
来源:互联网 发布:java电商网站 编辑:程序博客网 时间:2024/06/06 12:01
#include<iostream>#include<time.h>#include<vector>using namespace std;//template<typename T>template<typename T>int partition(vector<T> &vec,int left,int right);template<typename T>void quicksort(vector<T> &vec,int left,int right);int main(){ int num; clock_t start,finish;double duration; cout<<"please input the number of vector:"; cin>>num; vector<int> vec(num); srand(time(0)); for(vector<int>::size_type x=0;x!=vec.size();x++) vec[x]=rand()%100; cout<<"the vector is:"; for(vector<int>::size_type x=0;x!=vec.size();x++) cout<<vec[x]<<" ";cout<<endl; start=clock(); quicksort(vec,0,vec.size()-1); finish = clock(); //duration = (double)(finish - start) / CLOCKS_PER_SEC; duration = finish-start; cout<<"Time to do quicksort of"<<num<<" numbers is "<<duration<<" milliseconds."<<endl; cout<<"after quicksort,the vector is:"; for(vector<int>::size_type x=0;x!=vec.size();x++) cout<<vec[x]<<" ";cout<<endl; return 0;}template<typename T>int partition(vector<T> &vec,int left,int right){ T pivotkey=vec[left]; while(left<right){ while(left<right&&vec[right]>=pivotkey) right--; vec[left]=vec[right]; while(left<right&&vec[left]<=pivotkey) left++; vec[right]=vec[left]; } vec[left]=pivotkey; return left;}template<typename T>void quicksort(vector<T> &vec,int left,int right){ if(left<right){ int pivotloc=partition(vec,left,right); quicksort(vec,left,pivotloc-1); quicksort(vec,pivotloc+1,right); }}
一写才发现自己又是好多地方忘记了,就一个检验时间花费的东西原来都多次用到的,但真写的时候就给忘了,还得搬出msdn copy。
partition上课讲的比较多,写着比较顺当,vector还是搬出primer才用上的,更别提vector的高级用法了
- 快速排序c实现
- 快速排序C实现
- 快速排序C实现
- 快速排序C实现
- 快速排序(C实现
- 快速排序 C语言实现
- 快速排序C语言实现
- 快速排序算法(c#)实现
- c语言实现快速排序
- C/C++实现快速排序
- C语言实现快速排序
- 快速排序实现(C语言)
- 快速排序C语言实现
- Xcode(C++) 快速排序实现
- C语言实现快速排序
- 快速排序C语言实现
- 快速排序C语言实现
- C语言实现快速排序
- 【SVM学习笔记】支持向量机学习1
- 顾问个人成长的体会与建议
- 监听器
- GridView其中两种分页
- smarty实现简单新闻管理系统
- 快速排序c++实现
- 制作自己的GHOST XP系统盘
- 为什么per_cpu_ptr写那么变态on UP
- 上传文件的处理细节
- 13.3.3 获取各项指标
- mysql备份恢复shell脚本
- Android ViewGroup中事件触发和传递机制
- 坚持。
- C#获取当前路径的7种方法