数据结构和算法

当前位置:首页>数据结构和算法

排序算法-冒泡排序

时间:2019-04-17   访问量:9

<?php

/**

 * 冒泡排序

 *

 * -------------------------------------------------------------

 * 思路分析:就是像冒泡一样,每次从数组当中 冒一个最大的数出来。 

 * -------------------------------------------------------------

 * 你可以这样理解:(从小到大排序)存在10个不同大小的气泡,

 * 由底至上的把较少的气泡逐步地向上升,这样经过遍历一次后最小的气泡就会被上升到顶(下标为0)

 * 然后再从底至上地这样升,循环直至十个气泡大小有序。

 * 在冒泡排序中,最重要的思想是两两比较,将两者较少的升上去

 *

 */

// +--------------------------------------------------------------------------

// | 解题方式    | 这儿,可能有用的解决方案

// +--------------------------------------------------------------------------

/**

 * BubbleSort

 *

 * @param array $container

 * @return array

 */

function BubbleSort(array $container)

{

    $count = count($container);

    for ($j = 1; $j < $count; $j++) {

        for ($i = 0; $i < $count - $j; $i++) {

            if ($container[$i] > $container[$i + 1]) {

                $temp = $container[$i];

                $container[$i] = $container[$i + 1];

                $container[$i + 1] = $temp;

            }

        }

    }

    return $container;

}

// +--------------------------------------------------------------------------

// | 方案测试    | php `this.php` || PHPStorm -> 右键 -> Run `this.php`

// +--------------------------------------------------------------------------

var_dump(BubbleSort([4, 21, 41, 2, 53, 1, 213, 31, 21, 423]));

/*

array(10) {

  [0] =>

  int(1)

  [1] =>

  int(2)

  [2] =>

  int(4)

  [3] =>

  int(21)

  [4] =>

  int(21)

  [5] =>

  int(41)

  [6] =>

  int(41)

  [7] =>

  int(53)

  [8] =>

  int(213)

  [9] =>

  int(423)

}

 */


上一篇:数据结构

下一篇:排序算法-插入排序

在线咨询

点击这里给我发消息 售前咨询专员

点击这里给我发消息 售后服务专员

在线咨询

免费通话

24小时免费咨询

请输入您的联系电话,座机请加区号

免费通话

微信扫一扫

微信联系
返回顶部