zoukankan      html  css  js  c++  java
  • php 实现 数组排序(二分快排)递归

    function quickSort($arr)
    {
    # 先判断是否需要继续进行

    $length = count($arr);

    if ($length <= 1) return $arr;

    # 选择第一个元素作为基准

    $base_num = $arr[0];

    # 遍历除了标尺外的所有元素,按照大小关系放入两个数组内

    # 初始化两个数组

    $left_array = array(); # 小于基准数的

    $right_array = array(); # 大于基准数的

    for ($i = 1; $i < count($arr); $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); # 合并
    }
    $sortArr = quickSort($arr);
    var_dump($sortArr);
  • 相关阅读:
    vue基础知识
    制作离线yum源
    mysql字符集
    confluence 容器版 搭建部署
    iptables和ipvs
    http状态码
    运维相关网站博客集合
    搭建nexus私有maven私服
    MySQL 常见错误代码说明
    nc(瑞士军刀)
  • 原文地址:https://www.cnblogs.com/wangshuazi/p/14621206.html
Copyright © 2011-2022 走看看