快速排序
时间复杂度为nlogn,最坏 n^2
一个递归的问题。
/* *********************************************** Author :pk28 Created Time :2015/11/13 20:24:14 File Name :2.cpp ************************************************ */ #include <iostream> #include <vector> using namespace std; void quicksort(vector<int>&v,int l,int r){ if(r<=l)return ; int k=v[l];//mid int low=l; int high=r; while(low<high){//移动指针 while(low<high&&v[high]>k)high--; while(low<high&&v[low]<k)low++; swap(v[low],v[high]); } quicksort(v,l,low-1); quicksort(v,low+1,r); } int main() { int n; while(cin>>n){ int x; vector<int>v; for(int i=0;i<n;i++){ cin>>x; v.push_back(x); } quicksort(v,0,n-1); for(int i=0;i<n;i++){ cout<<v[i]<<" "; } cout<<endl; } return 0; }
原文地址:http://www.cnblogs.com/pk28/
与有肝胆人共事,从无字句处读书。
欢迎关注公众号:
欢迎关注公众号: