数据结构和算法——冒泡排序
- 2019 年 11 月 24 日
- 筆記
1、要解决的问题
给定如下所示的数字列表,请按升序对它们进行排序。
$numbers = [21,25,100,98,89,77];
要求
- 对数字进行排序时,需要使用冒泡排序算法。
- 用PHP实现该算法
2、伪代码说明
冒泡排序通过一次比较两个值来工作,并且成对配对。并且迭代直到所有元素都到位才结束。每次迭代后,至少有一个元素移到列表的末尾。下面是第一次迭代的说明:

描述冒泡排序的伪代码如下:
FOR each element of the list FOR each element of the list IF current element greater then next element swap the elements//如果当前的元素大于后一个元素,则交换位置 END IF END FOR END FOR
内层循环被认为是一次迭代,外层循环确保我们迭代足够的时间来对列表充分进行排序。
3、PHP实现冒泡排序
要在PHP中实现冒泡排序,我们只需要两层循环。请注意,两层循环的终止是:列表的长度-1。这是为了防止访问未索引的元素。
<?php $numbers = [21, 25, 100, 98, 89, 77]; $length = count($numbers) - 1 for ($i = 0; $i < $length; $i++) { for ($j = 0; $j < $length; $j++) { if ($numbers[$j] > $numbers[$j + 1]) { $tmp = $numbers[$j]; $numbers[$j] = $numbers[$j + 1]; $numbers[$j + 1] = $tmp; } } } print_r($numbers); // 输出: /* Array ( [0] => 21 [1] => 25 [2] => 77 [3] => 89 [4] => 98 [5] => 100 ) */