//这题主要还是按照书本的来写,对于本题,有些命名可以优化一下自己更容易理解
#include
using namespace std;
int n;
int pa(int a[],int low,int high)
{
a[0]=a[low];//暂存一个字表第一个要被换掉的数据,比如第一个要被交换掉的数据是a[1];
int key=a[low];//枢轴是字表第一个数据,比如第一次是a[1];
while(low=key)//要先从右往左换,顺序不能乱
high--;
a[low]=a[high];//将比枢轴小的记录移到低端
//当这条语句第一次发生的时候,第一个大于枢轴的a[high]就把a[1]覆盖掉了,所以前面要用a[0]暂存a[1];
while(low> n;
int a[n+5];
for(int i=1;i<=n;i++) cin >> a[i];
//a[0]的位置要空着用来暂存每次排序第一个要被替换掉的元素,到最后要把它放到每一趟结束的a[low]的位置,也就是表要分隔的位置
quicksort(a,1,n);
return 0;
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)