快速排序
方法简单归纳,就是某些看似无序的对象(数组)中,寻找相似的规律(D&C方法),用该对象(数组)中某个值当做基准值并与其它值或元素进行比较和排序的操作
<?php
function quick_sort($arr) {
if(!is_array($arr)) return false;
$len = count($arr);
//判断数组元素是否小于或等于1
if($len < 2) {
return $arr;//直接返回不需要排序
}else{
$pivot = $arr[0];// 设置递归条件基数
$less = array();//存储比当前小的基数
$gretar = array();//存储比当前大的基数
//跳过第一个元素,充当比较元素
for($i = 1;$i < $len;$i++) {
if($pivot >= $arr[$i]) {
$less[] = $arr[$i];
}else{
$gretar[] = $arr[$i];
}
}
//递归操作合并数组并返回
return array_merge(quick_sort($less),array($pivot),quick_sort($gretar));
}
}
echo '<pre>';
print_r(quick_sort(['5','3','26','56','2','6']));