• PHP如何对一组数进行重新排列(冒泡算法)


    如何对已知数组 $arr =  [24,69,80,57,13] 进行按重新顺序排序。

    思路:

      1、我们需要对数组中每两个,前后进行比较,如果前面小于后面的,就进行兑换位置;

      2、因为是两个一比较,所以我们需要比较count($arr) - 1 轮,因为每一轮比较下来,都可以确定一个最大的值,所以每一轮就会减少一次。

    图示:

     代码:

    //定义数组
    $arr = [24,69,80,57,13];
    //定义一个临时变量
    $temp = 0;
    //第一层循环,外层循环,循环count($arr) - 1 次(可以遍历到每一个数组值)
    for ($i1=0; $i1 < count($arr); $i1++) { 
        //第二层循环,内层循环,每一次外层循环内,再次循环,循环次数依次减少一次(每次循环结束,可以获取到一个最大值)
        for ($i=0; $i < count($arr) - 1; $i++) {
            //判断条件,满足即交换值 
            if($arr[$i] > $arr[$i + 1]){
                //临时存储满足条件的变量值
                $temp = $arr[$i];
                //重新赋值
                $arr[$i] = $arr[$i + 1];
                //重新赋值
                $arr[$i + 1] = $temp;
            }
        }
    }
    //输出排列后的数组
    echo '<pre>';
    var_dump($arr);

    最终结果为:

  • 相关阅读:
    抽象与接口的综合练习
    java构造函数能否被继承,为什么?
    题解 【USACO 4.2.1】草地排水
    题解 【NOI2010】超级钢琴
    题解 [USACO Mar08] 奶牛跑步
    题解 【NOIP2016】魔法阵
    题解 对称二叉树
    题解 【NOIP2014】解方程
    题解 【NOIP2010】关押罪犯
    题解 贪吃蛇
  • 原文地址:https://www.cnblogs.com/camg/p/12188704.html
Copyright © 2020-2023  润新知