PHP 快速排序
来源:互联网 发布:26周胎儿正常发育数据 编辑:程序博客网 时间:2024/05/16 14:31
作为一个初级phper,平时用到的算法很少,但是基本的几种算法还是要掌握的,比如快速排序。
需求:分别用快速排序法将下面数组中的值按照从小到的顺序进行排序。
要排序的数组:$arr(1,34,555,63,21,66,32,78,36,76,25);
思路分析:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。
<?php/* * 快速排序 * 通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。 * date 2017-1-20 * author 疯狂老司机 */$arr=array(1,34,555,63,21,66,32,78,36,76,25);function quick_sort($arr) { //先判断是否需要继续进行 $length = count($arr); if($length <= 1) { return $arr; } //如果没有返回,说明数组内的元素个数多余1个,需要排序,选择一个标尺,选择第一个元素 $base_num = $arr[0]; //遍历除了标尺外的所有元素,按照大小关系放入两个数组内 $left_array = array();//小于标尺的 $right_array = array();//大于标尺的 for($i=1; $i<$length; $i++) { if($base_num > $arr[$i]) { //放入左边数组 $left_array[] = $arr[$i]; } else { //放入右边 $right_array[] = $arr[$i]; } } //再分别对左边和右边的数组进行相同的排序处理方式 //递归调用这个函数,并记录结果 $left_array = quick_sort($left_array); $right_array = quick_sort($right_array); //合并左边标尺右边 return array_merge($left_array, array($base_num), $right_array);}var_dump(quick_sort($arr));?>
1 0
- PHP快速排序
- php版 快速排序
- php 快速排序算法
- php快速排序
- PHP 快速排序法
- PHP快速查找、排序
- 快速排序php写法
- PHP快速排序
- php快速排序
- PHP 快速排序算法
- php快速排序
- PHP实现快速排序
- php快速排序算法
- 快速排序-php实例
- php快速排序
- php快速排序算法
- php快速排序方法
- PHP 快速排序算法
- MySQL delete/truncate/drop的差别分析
- 随机数相关
- C++学习笔记(九)
- vi 使用
- Eclipse neon2 在多版本JDK环境下运行方法
- PHP 快速排序
- Java基本概念-异常处理
- opencv坐标系问题
- 使用Python的Flask框架实现视频的流媒体传输
- IOS微信第三方支付onResp方法不被回调的解决办法
- 动态数码管显示
- Alpha、Beta、RC、GA版本的区别
- c++ Primer Plus(第六版)第五章习题,写代码之路
- 拥抱UE4