C语言---快速排序

本文详细介绍了一个快速排序算法的实现过程,通过具体的C语言代码展示了如何使用递归方式完成数组的排序,并解释了每一部分代码的功能及作用。

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

1.以下代码是在书上看到的,加上自己的理解。

#include<stdio.h>
int a[101];
void quictsort(int left,int right)
{	
int i,j,t,temp;	
if(left>=right)//极为重要,判断退出函数的主要条件		
	return;	
i=left;	j=right;	
temp=a[left];//确定最左边一个数为标准数,	
while(i!=j)//两个数不相等才能进行比较,若相等既说明已经两边数已经比完退出循环,将标准数归位	
{		
while(a[j]>=temp&&i<j)		
	j--;		
while(a[i]<=temp&&i<j)		
	i++;		
if(i<=j)		
{			
t=a[i];			
a[i]=a[j];			
a[j]=t;		
}
}	
a[left]=a[i];//标准数归位	
a[i]=temp;	
quictsort(left,i-1);//对半分,将作半部分排序	
quictsort(i+1,right);}int main(void)
{	int n,i;	
scanf("%d",&n);
	for(i=1;i<=n;i++)
	{		
scanf("%d",&a[i]);	
}	quictsort(1,n);	for(i=1;i<=n;i++)
	{		
printf("%d\t",a[i]);	
}
}

快排多敲个几遍就可以理解了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值