找到一个 “基准”(pivot),所有元素比基准值小的摆放在基准左边,大的放在右边,然后递归排序
c语言版本
#include
void QuickSort(int *s,int l,int r);
int main(void)
{
int i;
int k[]={8,65,4,2,0,1,3,5,7,9,25};
QuickSort(k,0,10);
for(i=0;i<11;i++)
printf("%dn",k[i]);
return 0;
}
void QuickSort(int *s,int l,int r)
{
int i,j,pivot;
if(l
{
i=l;
j=r;
pivot=s[i];
while(i
{
while(ipivot) j--;//从右向左找第一个小于pivot的数
if(i
{
s[i]=s[j];
i++;
}
while(i
if(i
{
s[j]=s[i];
j--;
}
}
s[i]=pivot;
QuickSort(s,l,i-1);
QuickSort(s,i+1,r);
}
}
tplink路由器6500支持打印机吗(tplink路由器6500支不支持打印机)
崩坏星穹铁道周年庆几号结束 周年庆典持续多久要注意什么-核心信息和使用场景
卡拉彼丘排位段位划分一览 卡拉彼丘排位段位是什么-核心信息和注意点
卡拉彼丘新手角色有什么卡拉彼丘新手角色教程-使用前先看这些要点
tplink路由器3000M和5400M区别详解(tplink路由器3000M和5400M有什么区别)
卡拉彼丘天赋点怎么提升 卡拉彼丘天赋点提升方法-操作步骤和注意点