php 快速排序

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/rorntuck7/article/details/80951392

 分而治之

(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);

猜你喜欢

转载自blog.csdn.net/rorntuck7/article/details/80951392
今日推荐