PHP算法

作者: champShen | 来源:发表于2016-10-04 13:31 被阅读0次
1. 冒泡排序
//方法一
function bubble($array)
{
    $count = count($array);

    for ($i=0; $i < $count; $i++) { 
        for ($j=$i+1; $j < $count; $j++) { 
            if ($array[$i] > $array[$j]) {
                $temp = $array[$i];
                $array[$i] = $array[$j];
                $array[$j] = $temp;
            }
        }
    }
}

$array = [2,1,5,4,7,9,0];
//------------result------------//
Array
(
    [0] => 0
    [1] => 1
    [2] => 2
    [3] => 4
    [4] => 5
    [5] => 7
    [6] => 9
)
//方法二
function array_sort($arr)
{
    $result = [];
    while (true) {
        $low = array_shift($arr);//将第一个元素弹出,此时$arr=[2,7,5];
        if ($arr) {
            foreach ($arr as $k => $v) {
                if ($low > $v) {//若$low>$v,则交换位置
                    $arr[$k] = $low;
                    $low = $v;
                }
            }           
        } else {
            $result[] = $low;
            break;
        }

        $result[] = $low;
    }

    return $result;
}

$arr = [4,2,7,5];
//------------result------------//
Array
(
    [0] => 2
    [1] => 4
    [2] => 5
    [3] => 7
)
 在数组相同长度下,经测试,方法二执行速度略快于方法一。
2. 约瑟夫环(猴王问题)
function king($n, $m)
{
    $monkey = range(1, $n);

    $i = 0;
    while (count($monkey) > 1) {
        $i += 1;
        $head = array_shift($monkey); //出列最前面的猴子

        if ($i % $m != 0) { //如果不能被$m整除,则将该猴子返回数组尾部,否则出列
            array_push($monkey, $head);
        }
    }

    return current($monkey);
}

//------------result------------//
echo king(10, 7);// 9

相关文章

  • PHP常用数组排序算法

    title: PHP常用数组排序算法tags: [PHP,数组,排序,算法] 这几天写到的代码中,用到了许多对数组...

  • 2018-08-02

    php实现组合枚举算法 源码

  • PHP经典算法题

    PHP学习之路---算法题 1.使用PHP描述顺序查找和二分查找(也叫做折半查找)算法,顺序查找必须考虑效率,对象...

  • 算法系列教程(PHP演示)

    算法系列教程-四大排序算法(PHP演示) 冒泡 冒泡排序原理...

  • PHP算法

    约瑟夫问题 故事 39个犹太人与Josephus以及他的朋友躲到一个洞里,决定宁愿死也不要被敌人抓到。于是决定了自...

  • PHP算法

    PHP算法 使用PHP描述顺序查找和二分查找(也叫做折半查找)算法,顺序查找必须考虑效率,对象可以是一个有序数组二...

  • php算法

    冒泡排序 快速排序 二分查找

  • PHP算法

    1. 冒泡排序 2. 约瑟夫环(猴王问题)

  • php算法

    1.直接插入算法 原理: 将一个记录插入到已排序好的有序表中,从而得到一个新,记录数增1的有序表。即:先将序列的第...

  • 常用的排序算法

    常用的排序算法(PHP实现)_慕课手记

网友评论

      本文标题:PHP算法

      本文链接:https://www.haomeiwen.com/subject/cnojyttx.html