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

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

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

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

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

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

下面我们就结合具体的代码示例,给大家介绍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为大家更直观地调试运行冒泡排序算法的实现过程。

-END-

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

冒泡排序算法_PHP冒泡排序算法(一)相关推荐

  1. php编写冒泡排序算法_PHP排序算法之冒泡排序(Bubble Sort)实现方法详解

    本文实例讲述了PHP排序算法之冒泡排序(Bubble Sort)实现方法.分享给大家供大家参考,具体如下: 基本思想: 冒泡排序是一种交换排序,它的基本思想是:两两比较相邻记录的关键字,如果反序则交换 ...

  2. php整点抽奖活动,php,抽奖算法_PHP抽奖算法思路?,php,抽奖算法,算法 - phpStudy

    PHP抽奖算法思路? 网上有个烂大街的算法,具体请看链接 大概原理是: 1,生成一个随机数: 2,循环对比第N个奖品的概率: 3,确定奖品: 如果按照这个算法,主观上是抽一次奖,但客观上,把每个奖品都 ...

  3. 排序 时间倒序_经典排序算法之冒泡排序(Bubble Sort)

    冒泡排序 ( Bubble Sort ) 冒泡排序,正如它的名字一样,未排序数组中的最大(小)值会依次往上浮.冒泡排序主要有两个基本步骤:相邻元素之间的比较 和 交换位置. 步骤分析: 令待排序序列为 ...

  4. Java排序算法:冒泡排序

    Java排序算法:冒泡排序 //创建数组并赋值int[] data = new int[] {11,10,55,78,100,111,45,56,79,90,345,1000};for(int i=0 ...

  5. 202701算法_冒泡排序

    冒泡排序 1 综述 冒泡排序是最常用的排序算法, 算法重复地走访过要排序的数列,一次比较两个元素, 如果他们的顺序错误就把他们交换过来,这样越大的元素会经由交换慢慢"浮"到数列的顶 ...

  6. 7.使用php描述冒泡排序,PHP 数据结构 算法描述 冒泡排序 bubble sort

    PHP 数据结构 算法描述 冒泡排序 bubble sort 复制代码 代码如下: /** * 冒泡排序 bubble sort * * 原理:多次循环进行比较,每次比较时将最大数移动到最上面.每次循 ...

  7. 排序算法:冒泡排序、插入排序、选择排序、希尔排序

    相关博客: 排序算法:冒泡排序.插入排序.选择排序.希尔排序 排序算法:归并排序.快速排序 排序算法:桶排序.计数排序.基数排序 排序算法:堆排序 十大排序算法小结 一.冒泡排序: 1.算法原理: 冒 ...

  8. Java黑皮书课后题第7章:**7.18(冒泡排序)使用冒泡排序算法编写一个排序方法。编写一个测试程序,读取10个double型的值,调用这个方法,然后显示排序好的数字

    **7.18(冒泡排序)使用冒泡排序算法编写一个排序方法.编写一个测试程序,读取10个double型的值,调用这个方法,然后显示排序好的数字 题目 题目描述 冒泡排序法 / 下沉排序法 破题 代码 运 ...

  9. 数据结构与算法之冒泡排序

    数据结构与算法之冒泡排序 目录 基本介绍 冒泡过程图解 代码实现 1. 基本介绍 冒泡排序(Bubble Sorting)的基本思想是:通过对待排序序列从前向后(从下标较小的元素开始),依次比较相邻元 ...

最新文章

  1. PTA 基础编程题目集 6-8 简单阶乘计算 C语言
  2. IBATIS + ORACLE(二)
  3. DotnetSpider (一) 架构的理解、应用、搭建
  4. 在项目中使用 calendar_date_select
  5. qt显示echart_Qt配置,载入html,Echart, 交互
  6. Linux: Shell编程基础
  7. FPV穿越机飞行入门练习
  8. weui和jquery weui的区别、下载和在项目中的引用、使用、应用
  9. ARM 交叉编译器命名规则
  10. ios 渐变透明背景_iPhone 全透明动态壁纸,内含完整教程
  11. 使用Arduino和HMC5883L磁力计的数字罗盘
  12. 清华大学计算机夏文韬,太猛了--南京外国语学校2007届高三毕业生去向
  13. CF364D Ghd(随机化)
  14. kali linux获取qq密码,Kali Linux(64位)安装QQ
  15. python可以制作游戏脚本吗_python制作填词游戏步骤详解
  16. git —— gerrit 问题初总结
  17. 窗外逶迤的月光如水般倾泻
  18. Ubuntu 20.04 安装 ros 遇到的问题: The following packages have unmet dependencies
  19. 史上最全报表教程,还不快收藏!
  20. Mysql客户端Android版的开源产品

热门文章

  1. Jquery学习笔记:利用find和children方法获取后代元素
  2. 动态资料导出导入平台(一)
  3. 预览文章: c++ primer学习笔记,二:标准库类型
  4. 新业态催生无人经济步入黄金发展期
  5. Visual Studio 2019连接自动的Sql Server开发版数据库(C#语言)
  6. 关于将一个数输出为原码、反码和补码的解惑
  7. android 固定中间焦点,在Android上将相机焦点设置为受控固定距离
  8. 网络和计算机管理制度,网络和计算机使用管理制度
  9. html iframe.b.gen 病毒,常见病毒及处理方法.doc
  10. java 建立ssh隧道_JAVA SSH框架搭建流程