前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数据结构和算法——冒泡排序

数据结构和算法——冒泡排序

作者头像
Lemon黄
发布2019-11-24 16:07:30
4280
发布2019-11-24 16:07:30
举报
文章被收录于专栏:Lemon黄Lemon黄

1、要解决的问题

给定如下所示的数字列表,请按升序对它们进行排序。

代码语言:javascript
复制
$numbers = [21,25,100,98,89,77];

要求

  • 对数字进行排序时,需要使用冒泡排序算法。
  • 用PHP实现该算法
2、伪代码说明

冒泡排序通过一次比较两个值来工作,并且成对配对。并且迭代直到所有元素都到位才结束。每次迭代后,至少有一个元素移到列表的末尾。下面是第一次迭代的说明:

描述冒泡排序的伪代码如下:

代码语言:javascript
复制
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。这是为了防止访问未索引的元素。

代码语言:javascript
复制
<?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
)
*/
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-11-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Lemon黄 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 2、伪代码说明
  • 3、PHP实现冒泡排序
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档