PHP快速排序
思路
通过设置一个初始中间值,来将需要排序的数组分成3部分,小于中间值的左边,中间值,大于中间值的右边,
继续递归用相同的方式来排序左边和右边,最后合并数组
代码
<?php$a = array(2, 13, 42, 34, 56, 23, 67, 365, 87665, 54, 68, 3);function quicksort($a) {if (count($a) <= 1) {return $a;}$mid = $a[0];$left = array();$right= array();foreach ($a as $k=>$v){if($k>0){if($mid < $v){$right[]=$a[$k];;}else{$left[]=$a[$k];;}}}// for ($i=1; $i < count($a); $i++) {// if ($mid < $a[$i]) {// // 大于中间值// $right[] = $a[$i];// } else {// // 小于中间值// $left[] = $a[$i];// }// }//$left = quicksort($left);$right = quicksort($right);$res = array_merge($left,array($mid),$right);return $res; }print_r(quicksort($a));
总结
- 上一篇: 解 (25分)1.爸爸平时开车上班需要行
- 下一篇: PHP调用扩展的三种方式:dl() .s