基本算法个人PHP 实现(二)
<?php /** * php 快速排序 */ $arr = array(7,8,6,5,3,10); function quick($array){ if(count($array) <=1) return $array; $k = $array[0]; $left = array(); $right = array(); for($i =1; $i< count($array); $i++){ if($array[$i] <= $k){ $left[] = $array[$i]; }else{ $right[] = $array[$i]; } } $left = quick($left); $right = quick($right); return array_merge($left,array($k),$right); } print_r(quick($arr)); ?>
核心思想就是每次取得 要排序的数组首个元素。 然后和数组的其他元素比较 大于他则排在左边否则在右。
然后在对他左边的集合进行相同排序 直到左边只存在 0~ 1个元素。 (0代表本次排序的首元素最小。 1则代表只有1个元素大于他)
生命只有一次。