<?php //快速排序 echo "<pre>"; /** * 生成一个随机数组 * @param * @return array */ function getArr(){ $arr = array(); for($i = 0;$i < 1000;$i++){ $arr[] = mt_rand(0,99); } return $arr; } /** * 快速排序方法 * @param array $arr * @return array ,排好序的数组 */ function quick_sort($arr){ //判断$arr是否是一个数组 if(!is_array($arr)) return false; //递归出口:判断是否数组里面只有一个元素 //这里的长度一定要<=,因为$arr有可能为空 if(count($arr) <= 1) return $arr; $left = $right = array(); //取数组中的一个元素作为比较对象 //大于该元素的放$right,小于该元素的放$left for($i=1;$i<count($arr);$i++){ if($arr[$i] < $arr[0]){ $left[] = $arr[$i]; }else{ $right[] = $arr[$i]; } } $left = quick_sort($left); $right = quick_sort($right); return array_merge($left,array($arr[0]),$right); } //调用 $arr = getArr(); $_arr = quick_sort($arr); print_r($_arr);