冒泡排序算法_PHP冒泡排序算法(一)

本文介绍了PHP冒泡排序算法的实现过程。冒泡排序通过比较相邻元素并交换位置,逐步将最大(或最小)的元素移动到数组的末尾。文章提供了具体的代码示例,展示了如何使用PHP实现升序排列的冒泡排序,并预告了下一篇文章将通过Xdebug进行更深入的调试演示。
摘要由CSDN通过智能技术生成

·点击蓝字cf5c0940a0ab5c89aca72becdd00b835.png关注我们!每天获取最新的编程小知识!

7a008857e262cd363be32dc78e87a709.gif

源 / php中文网      源 / www.php.cn

在前面的文章中,我们给大家介绍了PHP算法系列之《PHP随机取一算法》。今天我们继续为大家讲解常见的PHP算法系列的相关知识点,即PHP冒泡排序算法

fbe963d6571911cdcfbf9e9fddf8274c.png

(视频版请点击本文末尾左下角:

冒泡排序,相信对于编程人员来说并不陌生。冒泡排序算法简单来说就是依次比较相邻的两个数,然后根据大小做出排序,直至最后两位数。

那么之所以称为“冒泡排序”算法是因为越大的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样。

下面我们就结合具体的代码示例,给大家介绍PHP冒泡排序算法的实现。(以下是升序排列,即从小到大排列)

代码示例如下:

function maopao($arr){

    $len = count($arr);

    for($k=0;$k<=$len;$k++)

    {

        for($j=$len-1;$j>$k;$j--){

            if($arr[$j]<$arr[$j-1]){

                $temp = $arr[$j];

                $arr[$j] = $arr[$j-1];

                $arr[$j-1] = $temp;

            }

        }

    }

    return $arr;

}

$arr = [2,6,2,8,2,34,5,9,2341,23];

var_dump(maopao($arr));

这里我们定义了一个maopao方法,首先我们通过count函数统计出指定数组的总长度。 然后使用双重for循环语句循环遍历数组元素并逐一比较,那么外层for循环就是用来控制循环轮次;内层for循环就是控制每轮的比较次数,并且在每轮比较后选出最大的一个值放在最后。

注意:这里我们通过临时变量$temp介质来存贮$j的值,以此循环比较两个相邻的元素,并把大的值放在后面。

输出:

array (size=10)

  0 => int 2

  1 => int 2

  2 => int 2

  3 => int 5

  4 => int 6

  5 => int 8

  6 => int 9

  7 => int 23

  8 => int 34

  9 => int 2341

总结冒泡排序的算法原理:对一组数据,比较相邻数据的大小,将值小数据在前面,值大的数据放在后面。

本篇文章就是关于PHP冒泡排序算法的介绍,在下篇文章《PHP冒泡排序算法(二)》中,我们将通过Xdebug为大家更直观地调试运行冒泡排序算法的实现过程。

8a4b5b0bbeb3fbaa07ab2303ee61d002.gif

-END-

声明:本文选自「 php中文网 」,搜索「 phpcnnew 」即可关注!

56a7a195f691fbb58a16d0131d4ede71.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值