快速排序

本文深入讲解了快速排序算法的核心——分区函数的实现细节。通过分析Patition函数如何将数组分为两部分,使得左边元素小于基准,右边元素大于基准,从而为快速排序奠定基础。文章详细解释了快速排序的递归过程,帮助读者理解算法的工作原理。
摘要由CSDN通过智能技术生成
int Patition(int *a, int left, int right)
{
	int key = right;
	int cutoff = left - 1;
	for (int i = left; i < right; i++)
	{
		if (*(a + i) < *(a + right))
		{
			int tmp = *(a + i);
			*(a + i) = a[++cutoff];
			a[cutoff] = tmp;
		}
	}

	int tmp = *(a + right);
	*(a + right) = a[++cutoff];
	a[cutoff] = tmp;

	return cutoff;
}

//2.快速排序
void QuickSort(int* a, int left, int right)
{
	if (right < left)
		return;
	int middle = Patition(a, left, right);
	QuickSort(a, left, middle - 1);
	QuickSort(a, middle + 1, left);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值