数据结构(5)——快速排序

本文深入讲解了快速排序算法,包括其核心思想、实现步骤以及代码示例。快速排序是一种高效的排序算法,通过递归方式选择枢轴进行数据划分,将小于枢轴的元素置于左侧,大于枢轴的元素置于右侧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据结构(5)——快速排序

快速排序:速度最快,运用递归

​ 不断选择一个枢轴进行划分,小于枢轴的放在左边,大于枢轴的放在右边

#include <iostream>
using namespace std;
template<class T>
void QuickSort(T*a,const int left,const int right)
{
	if(left<right)
	{
		//选择枢轴进行划分
		int i=left;
		int j=right+1;
		int pivot=a[left];
		//划分算法 
		do
		{
			do i++;  while(a[i]<pivot);
			do j--;  while(a[j]>pivot);
			if(i<j)  swap(a[i],a[j]);
		 } while(i<j);
		 swap(a[left],a[j]);
		 //递归 
		QuickSort(a,left,j-1);
		QuickSort(a,j+1,right);
	}
}
int main()
{
	int k[]={2,4,6,8,0,1,3,5,7,9,99};
	QuickSort(k,0,9);
	for(int i=0;i<10;i++)
	cout<<k[i]<<endl;
	return 0;
 } 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值