Rumah  >  Artikel  >  pembangunan bahagian belakang  >  php之quicksort 快速排方法实例

php之quicksort 快速排方法实例

小云云
小云云asal
2018-03-10 09:18:281460semak imbas

本文主要和大家分享php之quicksort 快速排方法实例,希望能帮助大家更好掌握如何使用quicksort。

<?phpfunction quickSort($arr){
    //先判断是否需要继续进行
    $length = count($arr);    if ($length <= 1) {        return $arr;
    }    //选择第一个元素作为基准
    $base_num = $arr[0];    //遍历除了标尺外的所有元素,按照大小关系放入两个数组内

    //初始化两个数组
    $left_array = [];   //小于基准的
    $right_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);
}$arr1 = [1, 4, 5, 8, 2, 12, 23, 17];$arr2 = quickSort($arr1);

var_dump($arr2);

相关推荐:

php冒泡、选择、插入和快速排序算法分享

Js快速排序方法实例

PHP实现快速排序的方法示例

Atas ialah kandungan terperinci php之quicksort 快速排方法实例. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn