PHP实现快速排序

Posted 幸运炸酱草

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP实现快速排序相关的知识,希望对你有一定的参考价值。

快速排序的概念:通过初始一个中间值(一般是数组的第一个数),将小于这个初始值的放左边,大于初始值的放右边,形成两个新的数组,再将这两个数组继续进行拆分,直到最终取得的数组内仅为一个元素,最后将这些数组进行合并,就实现了我们所说的快速排序,接下来就演示一个如何使用php实现快速排序:

<?php //快速排序 $arr = array(5,4,9,2,3,8,6); function quick($arr){ //递归出口:当数组内部元素小于等于1时,则返回这个数组 $len = count($arr); if($len <=1)return $arr; $left = $right = array(); for($i=1;$i<$len;$i++){      /*假设当前数组的第一个元素$arr[0]为当前数组的中间值,      当$arr[$i]小于中间值时,则放到左边,反之则放到右边*/ if($arr[$i] < $arr[0]){ $left[] = $arr[$i]; }else{ $right[] = $arr[$i]; } }    /*递归:此时的$left和$right内数组元素没有排好序, 通过递归实现排序*/ $left = quick($left); $right = quick($right);    /*合并数组,$arr[0]为元素而非数组,通过(array)的方式 强制转换成一个数组再进行合并*/ return array_merge($left,(array)$arr[0],$right); } echo '<pre>'; print_r(quick($arr));

谢谢观看~

以上是关于PHP实现快速排序的主要内容,如果未能解决你的问题,请参考以下文章

快速排序的php实现

PHP实现快速排序

PHP 四种基本排序算法的代码实现

如何使用sublime代码片段快速输入PHP头部版本声明

算法PHP实现冒泡排序和快速排序--防遗忘

PHP 快速排序