快速排序的C++实现代码

来源:互联网 发布:星际皆知你爱我txt 编辑:程序博客网 时间:2024/05/24 03:59
 
//交换两个元素void swap(vector<int>& A,int i,int j){int temp = A[i];A[i] = A[j];A[j] = temp;}//使用双指针来实现partitionint partition(vector<int>& A,int start,int end){//支点int pivot = (start+end)/2;//将支点交换到数组尾端swap(A,pivot,end);int small = start-1;for(int index = start;index<end;index++){if(A[index]<=A[end]){small ++;if(small!=index)swap(A,small,index);}}++ small;swap(A,small,end);return small;}void qsort(vector<int>& A,int start,int end){if (start>=end)return;int k = partition(A,start,end);qsort(A,start,k-1);qsort(A,k+1,end);}


0 0
原创粉丝点击