php 快速排序

 分而治之

(1) 找出基线条件,这种条件必须尽可能简单。

(2) 不断将问题分解(或者说缩小规模),直到符合基线条件。



$arr=array(5,1,2);

function quicksort($arr){
      if(count($arr)<2){
		  return $arr;
	  }else{
		  $pivot=$arr[0];
		  $less=[];//小于基准线的数组
		  $greater=[];//大于基准线的数组
		  for($i=1;$i<count($arr);$i++){
			if($arr[$i]<$pivot){
				$less[count($less)]=$arr[$i];
			}else{
				$greater[count($greater)]=$arr[$i];
			}
		  }
		  return  array_merge(quicksort($less),array($pivot),quicksort($greater));
	  }
}

$list= quicksort($arr);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值