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.爸爸平时开车上班需要行
- 下一篇: Linux中的大于号 双大于号 大于号: