排序算法__快速排序
2017-02-22 01:28
204 查看
<?php $arr=array(1,43,54,62,21,66,32,78,36,76,39); function quickSort($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 = quickSort($left_array); $right_array = quickSort($right_array); //合并左边 标尺 右边 return array_merge($left_array, array($base_num), $right_array); } $arr = quickSort($arr); echo "<pre>"; print_r($arr); /* Array ( [0] => 1 [1] => 21 [2] => 32 [3] => 36 [4] => 39 [5] => 43 [6] => 54 [7] => 62 [8] => 66 [9] => 76 [10] => 78 ) */
View Code
相关文章推荐
- [排序算法]NET C# 快速排序 代码
- 排序算法--快速排序
- 元素排序几种常用的排序算法的分析及java实现(希尔排序,堆排序,归并排序,快速排序,选择排序,插入排序,冒泡排序)
- 【手写排序算法及优化】快速排序
- java排序之冒泡、插入、选择、快速等排序算法
- 排序算法:(一)快速排序
- 排序算法(三) 快速排序
- 排序算法汇总(选择排序 ,直接插入排序,冒泡排序,希尔排序,快速排序,堆排序)
- 排序算法之一 快速排序
- array和list的排序算法对比(一):快速排序
- C语言8种排序算法及其实现 1.希尔排序 2.二分插入法 3.直接插入法 4.带哨兵的直接排序法 5.冒泡排序 6.选择排序 7.快速排序 8.堆排序
- 基础排序算法 – 快速排序Quick sort
- 排序算法(快速排序、直接插入排序、直接选择、冒泡排序)
- 排序算法——快速排序
- 排序算法(快速排序,冒泡排序,插入排序,堆排序)
- 排序算法:快速排序
- 白话排序算法--快速排序
- 排序算法之快速排序
- 排序算法复习(Java实现): 插入,冒泡,选择,Shell,快速排序
- 排序算法·快速排序