快速排序(Quick Sort)

一、简介

        快速排序是由东尼·霍尔所发明的排序算法。事实上,排序算法通常明显比其他算法更快,因为它的内部循环可以在大部分框架上很有效地被实现出来。

二、过程

        1.从序列中挑选出一个元素,作为基准。

        2.把所有比基准小的元素放在基准的前面,把所有比基准大的元素放在基准的后面(相同的数放到任一边),这个过程称为分区。

        3.对每个分区递归地进行步骤1和步骤2,递归的结束条件是序列的大小是0。

三、代码

int a[maxn];
void qsort(int left,int right)
{
	if(left>right)
	{
		return;
	}
	int i=left,j=right,temp=a[left];
	while(i<j)
	{
		while(i<j&&a[j]>=temp)
		{
			j--;
		}
		while(i<j&&a[i]<=temp)
		{
			i++;
		}
		if(i<j)
		{
			swap(a[i],a[j]);
		}
	}
	swap(a[left],a[i]);
	qsort(left,i-1);
	qsort(i+1,right);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值