常用排序算法

快速排序

function quickSort($array) {
    if(!isset($array[1]))
        return $array;
    $mid = $array[0]; //获取一个用于分割的关键字,一般是首个元素
    $leftArray = array();
    $rightArray = array();

    foreach($array as $v)
    {
        if($v > $mid)
            $rightArray[] = $v;  //把比$mid大的数放到一个数组里
        if($v < $mid)
            $leftArray[] = $v;   //把比$mid小的数放到另一个数组里
    }
    $leftArray = quickSort($leftArray); //把比较小的数组再一次进行分割
    $leftArray[] = $mid;        //把分割的元素加到小的数组后面,不能忘了它哦
    $rightArray = quickSort($rightArray);  //把比较大的数组再一次进行分割
    return array_merge($leftArray,$rightArray);  //组合两个结果
}

冒泡排序

function bubbleSort($arr) {
    for($i = 0, $countI = count($arr); $i < $countI; $i ++) {
        for ($j = 0, $countJ = $countI-$i; $j < $countJ; $j++) {
            if ($j == $countI - 1) {
                continue;
            }
            if ($arr[$j] > $arr[$j+1]) {
                $tmp = $arr[$j];
                $arr[$j]   = $arr[$j+1];
                $arr[$j+1] = $tmp;
            }
        }
    }

    return $arr;
}

选择排序

插入排序

文章源自Mervyn's Blog-https://mervyn.life/5b90526d.html
weinxin
我的微信公众号
微信扫一扫
mervyn
抽奖算法 数据结构与算法

抽奖算法

<?php /* * 经典的概率算法, * 数组中 probability 的总和(基数),基数越大越能体现概率的准确性。 * probability 的总和为100,那么 iPhone XR ...
抽奖算法 数据结构与算法

抽奖算法

<?php /* * 经典的概率算法, * 数组中 probability 的总和(基数),基数越大越能体现概率的准确性。 * probability 的总和为100,那么 iPhone XR ...
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: