编程语言
首页 > 编程语言> > 分治算法——快速排序(c++)

分治算法——快速排序(c++)

作者:互联网

这是主要代码(函数名不怎么好听)

用法(假如有n个数):qw(1,n)

void qw(int l,int r)
{
	int i=l,j=r;
	int mid=a[rand()%(r-l)+l];
	while(i<=j)
	{
		while(a[i]<mid/*a[i]>mid*/)i++;
		while(a[j]>mid/*a[j]<mid*/)j--;
		if(i<=j)
		{
			a[0]=a[i];
			a[i]=a[j];
			a[j]=a[0];
			i++;
			j--;
		}
	}
	if(l<j)qw(l,j);
	if(i<r)qw(i,r);
}
这是从大到小排,反过来就是注释的内容,其他不变(这种排序不稳定)

标签:rand,qw,int,分治,mid,c++,while,排序
来源: https://blog.csdn.net/qq_42989972/article/details/99461385