• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

常见排序算法-php

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

1.归并排序

$a = [1, 4, 6, 8, 10, 14, 16];
$b = [2, 3, 5, 8, 9, 11];
function merge_sort($a, $b)
{
    $a_i = $b_i = 0;
    $count_a = count($a);
    $count_b = count($b);
    $ret = [];
    while ($a_i < $count_a && $b_i < $count_b) {
        if ($a[$a_i] > $b[$b_i]) {
            array_push($ret, $b[$b_i]);
            $b_i++;
        } else {
            array_push($ret, $a[$a_i]);
            $a_i++;
        }
    }
    if ($a_i < $count_a) {
        $ret = array_merge($ret, array_slice($a, $a_i));
    }
    if ($b_i < $count_b) {
        $ret = array_merge($ret, array_slice($b, $b_i));
    }
    return $ret;
}

$ret = merge_sort($a, $b);
echo implode(',', $ret);

2.选择排序

$arr = [1, 5, 2, 7, 97, 23, 1, 4];
function select_sort(array $arr)
{
    $count = count($arr);
    if ($count < 2) return $arr;
    for ($i = 0; $i < $count; $i++) {
        $min = $arr[$i];
        $min_i = $i;
        for ($j = $i; $j < $count; $j++) {
            if ($arr[$j] < $min) {
                $min = $arr[$j];
                $min_i = $j;
            }
        }
        $arr[$min_i] = $arr[$i];
        $arr[$i] = $min;
    }
    return $arr;
}

$ret = select_sort($arr);
echo implode(',', $ret);

3.插入排序

$arr = [1, 5, 2, 7, 97, 23, 1, 4];
function insert_sort($arr)
{
    $count = count($arr);
    if ($count < 2) return $arr;
    for ($i = 0; $i < $count; $i++) {
        for ($j = $i; $j > 0; $j--) {
            if ($arr[$j] < $arr[$j - 1]) {
                $tmp = $arr[$j - 1];
                $arr[$j - 1] = $arr[$j];
                $arr[$j] = $tmp;
            }
        }
    }
    return $arr;
}

$ret = insert_sort($arr);
echo implode(',', $ret);

4.冒泡排序

$arr = [1, 5, 2, 7, 97, 23, 1, 4];
function maopao_sort($arr)
{
    $count = count($arr);
    if ($count < 2) return $arr;
    for ($i = 0; $i < $count; $i++) {
        for ($j = 0; $j < $count - $i - 1; $j++) { // 注意$j的上限,小心数组越界
            if ($arr[$j] > $arr[$j + 1]) {
                $tmp = $arr[$j + 1];
                $arr[$j + 1] = $arr[$j];
                $arr[$j] = $tmp;
            }
        }
    }
    return $arr;
}

$ret = maopao_sort($arr);
echo implode(',', $ret);

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
隐藏index.php-ThinkPHP完全开发手册-3.1发布时间:2022-07-10
下一篇:
PHP中Jquery用法发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap