PHP基础算法

Posted 宸晓闹儿06

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP基础算法相关的知识,希望对你有一定的参考价值。

需求:分别用 冒泡排序法,快速排序法,选择排序法,插入排序法,归并排序将下面数组中 的值按照从小到大的顺序进行排序。

      $arr=array(11,3,56,62,21,66,32,78,36,76,39,88,34);

冒泡排序(Bubble Sort)

算法原理:是一种简单的排序算法。它重复地走访过要排序的数列,依次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。

代码实现:

$arr = [1, 43, 54, 62, 21, 66, 32, 78, 36, 76, 39, 2];
//冒泡排序
function bubbleSort($arr) {
    $len = count($arr);
    //该层循环控制 需要冒泡的轮数
    for ($i = 1; $i < $len; $i++) {
        //该层循环用来控制每轮 冒出一个数 需要比较的次数
        for ($k = 0; $k < $len - $i; $k++) {
            if ($arr[$k] > $arr[$k + 1]) {    //从小到大 < || 从大到小 >
                $tmp         = $arr[$k + 1]; // 声明一个临时变量
                $arr[$k + 1] = $arr[$k];
                $arr[$k]     = $tmp;
            }
        }
    }
    return $arr;
}

$arr = bubbleSort($arr);
print_r($arr);

 

 

以上是关于PHP基础算法的主要内容,如果未能解决你的问题,请参考以下文章

编程思想与算法

超级有用的9个PHP代码片段

PHP必用代码片段

常用编程思想与算法

视频二次裁剪时间计算出原片的时间片段算法

PHP代码-psysh调试代码片段工具