您现在的位置是:主页 > 技术领域 > PHP > PHP

PHP 快速排序

追风 2021-11-15 PHP 人已围观

简介PHP 快速排序

/**
 * @param $arr 要排序的数组
 * @return array 排好序的数组
 */
function quick_sort($arr)
{
    $count = count($arr);
    if ($count < 2) {
        return $arr;
    }
    //创建临时数组,以基准值为分界线,大于基准值的放在右侧,小鱼基准值的放在左侧
    $leftArr = $rightArr = array();
    //基准值,一般取数组第一个元素
    $middle = $arr[0];
    //循环数组与基准值比较
    for ($i = 1; $i < $count; $i++) {
        if ($arr[$i] < $middle) {
            $leftArr[] = $arr[$i];
        } else {
            $rightArr[] = $arr[$i];
        }
    }
    //递归,将左右数组排序
    $leftArr = quick_sort($leftArr);
    $rightArr = quick_sort($rightArr);
 
    //将排好序的临时数组合并
    return array_merge($leftArr, array($middle), $rightArr);
 
}

文章评论