快速排序算法比较简单的写法

快速排序算法比较简单的写法

左为基准

int QuickSort(int *asArray, int aiLow, int aiHigh)//left
{	int liLeft = aiLow;	
    int liRight = aiHigh;
    int liPivot = asArray[liLeft];
    if(liLeft <liRight)	
     {		
           while(liLeft < liRight)	
	        {				
	             while(asArray[liRight] >= liPivot&&liLeft <liRight)	
	              --liRight;
				asArray[liLeft] = asArray[liRight];	
				
			     while(asArray[liLeft] <=liPivot&&liLeft<liRight) 	
		    	++liLeft;	
				asArray[liRight] = asArray[liLeft];		
			}	
		 asArray[liLeft] = liPivot;		
		 QuickSort(asArray, aiLow, liLeft-1);		
		 QuickSort(asArray, liLeft+1, aiHigh);	
	}	
	return 0;
}

右为基准

int QuickSort2(int *asArray, int aiLow, int aiHigh)//Right
{	
    int liLeft = aiLow;
	int liRight = aiHigh;	
	int liPivot = asArray[liRight];
    if(liLeft < liRight)	
	{		
		while(liLeft < liRight)	
			{		
				while(asArray[liLeft] <=liPivot&&liLeft<liRight) 				
				++liLeft;		
				asArray[liRight] = asArray[liLeft];	
					
				while(asArray[liRight] >= liPivot&&liLeft <liRight)	
				--liRight;		
				asArray[liLeft] = asArray[liRight];
				}	
	    asArray[liRight] = liPivot;	
		QuickSort(asArray, aiLow, liLeft-1);		
		QuickSort(asArray, liLeft+1, aiHigh);	
    }	
		return 0;
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值