核心思想:递归;然后寻找枢轴,在进行交换
#include<iostream>
using namespace std;
template<class T>
void QuickSort(T *a,const int left,const int right){
if(left<right)
{ //选枢轴
int i=left; //找
int j=right+1;//为什么加1 ? 的是快速找到枢轴,加快排列速度
int pivot=a[left];
do{
do i++;while(a[i]<pivot);//找枢轴
do j--;while(a[j]>pivot);//找枢轴
if(i<j) swap(a[i],a[j]) ;
} while(i<j);
swap(a[left],a[j]);
//j这个位置是中间
QuickSort(a,left,j-1);
QuickSort(a,j+1,right);
}
}
int main(){
int k[]={8,2,1,6,4,9,5,7,8,10,99} ;//99加上一个特别大的一个数,是特别加多的???目的是快速找到枢轴,加快排列速度;
QuickSort(k,0,9);
for(int i=0;i<11;i++)
{
cout<<k[i]<<endl;
}
return 0;
}
网友评论