冒泡排序算法_PHP冒泡排序算法(一)
·点击蓝字关注我们!每天获取最新的编程小知识!
源 / 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冒泡排序算法(一)相关推荐
- php编写冒泡排序算法_PHP排序算法之冒泡排序(Bubble Sort)实现方法详解
本文实例讲述了PHP排序算法之冒泡排序(Bubble Sort)实现方法.分享给大家供大家参考,具体如下: 基本思想: 冒泡排序是一种交换排序,它的基本思想是:两两比较相邻记录的关键字,如果反序则交换 ...
- php整点抽奖活动,php,抽奖算法_PHP抽奖算法思路?,php,抽奖算法,算法 - phpStudy
PHP抽奖算法思路? 网上有个烂大街的算法,具体请看链接 大概原理是: 1,生成一个随机数: 2,循环对比第N个奖品的概率: 3,确定奖品: 如果按照这个算法,主观上是抽一次奖,但客观上,把每个奖品都 ...
- 排序 时间倒序_经典排序算法之冒泡排序(Bubble Sort)
冒泡排序 ( Bubble Sort ) 冒泡排序,正如它的名字一样,未排序数组中的最大(小)值会依次往上浮.冒泡排序主要有两个基本步骤:相邻元素之间的比较 和 交换位置. 步骤分析: 令待排序序列为 ...
- Java排序算法:冒泡排序
Java排序算法:冒泡排序 //创建数组并赋值int[] data = new int[] {11,10,55,78,100,111,45,56,79,90,345,1000};for(int i=0 ...
- 202701算法_冒泡排序
冒泡排序 1 综述 冒泡排序是最常用的排序算法, 算法重复地走访过要排序的数列,一次比较两个元素, 如果他们的顺序错误就把他们交换过来,这样越大的元素会经由交换慢慢"浮"到数列的顶 ...
- 7.使用php描述冒泡排序,PHP 数据结构 算法描述 冒泡排序 bubble sort
PHP 数据结构 算法描述 冒泡排序 bubble sort 复制代码 代码如下: /** * 冒泡排序 bubble sort * * 原理:多次循环进行比较,每次比较时将最大数移动到最上面.每次循 ...
- 排序算法:冒泡排序、插入排序、选择排序、希尔排序
相关博客: 排序算法:冒泡排序.插入排序.选择排序.希尔排序 排序算法:归并排序.快速排序 排序算法:桶排序.计数排序.基数排序 排序算法:堆排序 十大排序算法小结 一.冒泡排序: 1.算法原理: 冒 ...
- Java黑皮书课后题第7章:**7.18(冒泡排序)使用冒泡排序算法编写一个排序方法。编写一个测试程序,读取10个double型的值,调用这个方法,然后显示排序好的数字
**7.18(冒泡排序)使用冒泡排序算法编写一个排序方法.编写一个测试程序,读取10个double型的值,调用这个方法,然后显示排序好的数字 题目 题目描述 冒泡排序法 / 下沉排序法 破题 代码 运 ...
- 数据结构与算法之冒泡排序
数据结构与算法之冒泡排序 目录 基本介绍 冒泡过程图解 代码实现 1. 基本介绍 冒泡排序(Bubble Sorting)的基本思想是:通过对待排序序列从前向后(从下标较小的元素开始),依次比较相邻元 ...
最新文章
- PTA 基础编程题目集 6-8 简单阶乘计算 C语言
- IBATIS + ORACLE(二)
- DotnetSpider (一) 架构的理解、应用、搭建
- 在项目中使用 calendar_date_select
- qt显示echart_Qt配置,载入html,Echart, 交互
- Linux: Shell编程基础
- FPV穿越机飞行入门练习
- weui和jquery weui的区别、下载和在项目中的引用、使用、应用
- ARM 交叉编译器命名规则
- ios 渐变透明背景_iPhone 全透明动态壁纸,内含完整教程
- 使用Arduino和HMC5883L磁力计的数字罗盘
- 清华大学计算机夏文韬,太猛了--南京外国语学校2007届高三毕业生去向
- CF364D Ghd(随机化)
- kali linux获取qq密码,Kali Linux(64位)安装QQ
- python可以制作游戏脚本吗_python制作填词游戏步骤详解
- git —— gerrit 问题初总结
- 窗外逶迤的月光如水般倾泻
- Ubuntu 20.04 安装 ros 遇到的问题: The following packages have unmet dependencies
- 史上最全报表教程,还不快收藏!
- Mysql客户端Android版的开源产品
热门文章
- Jquery学习笔记:利用find和children方法获取后代元素
- 动态资料导出导入平台(一)
- 预览文章: c++ primer学习笔记,二:标准库类型
- 新业态催生无人经济步入黄金发展期
- Visual Studio 2019连接自动的Sql Server开发版数据库(C#语言)
- 关于将一个数输出为原码、反码和补码的解惑
- android 固定中间焦点,在Android上将相机焦点设置为受控固定距离
- 网络和计算机管理制度,网络和计算机使用管理制度
- html iframe.b.gen 病毒,常见病毒及处理方法.doc
- java 建立ssh隧道_JAVA SSH框架搭建流程