快速排序
发布时间:2020-04-26 | 发布者: 东东工作室 | 浏览次数: 次$arr=array(6,3,8,6,4,2,9,5,1); // [3 6 4 2 5 1] 6 [9] // 左边:[2 1] 3 [6 4 5] // 左边的左边:1 2 // 左边的右边:[4 5] 6 // 左边的右边左边:4 5 // 当最后剩下一个的时候就不用比较了 //函数实现快速排序 function quick_sort($arr) { //判断参数是否是一个数组 if(!is_array($arr)) return false; //递归出口:数组长度为1,直接返回数组 $length=count($arr); if($length<=1) return $arr; //数组元素有多个,则定义两个空数组 $left=$right=array(); //使用for循环进行遍历,把第一个元素当做比较的对象 for($i=1;$i<$length;$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); } //调用 echo "<pre>"; print_r(quick_sort($arr));
下一篇:curl工具类
推荐文章
相关文章