// 快速排序 // 找到当前数组中的任意一个元素(一般选择第一个元素),分出大于小于等于的三个部分,再3合并成一个数组,递归调用 function quick_sort($array) { //判断参数是否是一个数组 if(!is_array($array)) return false; //数组长度为1,直接返回数组 $length = count($array); if($length <= 1) return $array; //数组元素有多个,则定义两个空数组 $left = $right = array(); //使用for循环进行遍历,把第一个元素当做比较的对象 for($i=1; $i < $length; $i++) { //判断当前元素的大小 if($array[$i] < $array[0]){ $left[] = $array[$i]; }else{ $right[] = $array[$i]; } } //递归调用 $left = quick_sort($left); $right = quick_sort($right); //将所有的结果合并 return array_merge($left,array($array[0]),$right); } var_dump(quick_sort($array));