排序之快速排序
算法思想:采用分治法,首先确定一个元素作为参照,将所有比其小的元素都放到其左边,将所有比其大的元素都放到其右边,一趟快速排序,确定参照元素的最终位置,然后对最终位置两边的分别再采用如上做法,不断递归,最后排序完成。
代码:
<?php $arr = array(232,3,44,234,456,3432,289,12,43546,54,322,554,45,3435,34454,323,2323); function quickSort(&$arr, $low, $high) { if($low<$high) { $index = partion($arr, $low, $high); quickSort($arr, $low, $index-1); quickSort($arr, $index+1, $high); } } function partion(&$arr, $low, $high) { while($low<$high) { $temp = $arr[$low]; while($low<$high && $arr[$high]>$temp) $high--; $arr[$low] = $arr[$high]; while($low<$high && $arr[$low]<$temp) $low++; $arr[$high] = $arr[$low]; $arr[$low] = $temp; } return $low; } quickSort($arr, 0, count($arr)-1); foreach ($arr as $val) { echo " ".$val; } ?>