前言

《大鱼海棠》最心疼湫奋不顾身的付出,影片最后一句台词:我们这一生很短,我们终将会失去它,所以不妨大胆一点。爱一个人,攀一座山,追一次梦,不妨大胆一点。 有很多事都没有答案…

——网易云音乐《湫兮如风》热评(如有侵权联系必删)

冒泡排序

自:百度百科

冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。

它重复地走访过要排序的元素列,一次比较两个相邻的元素,如果他们的顺序(如从大到小、首字母从A到Z)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素已经排序完成。

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

算法原理

冒泡排序算法的原理如下:

  1. 比较相邻的元素。如果第一个比第二个大,就交换他们两个。

  2. 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。

  3. 针对所有的元素重复以上的步骤,除了最后一个。

  4. 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。 [1]

废话少说上代码:

<?php
//送给心爱的她5201314
$arr = array('5','2','0','1','3','1','4');function BubbleSort(array $arr)
{for ($i=0 ; $i <count($arr) ; $i++) { //设置一个空变量$data = '';for ($j=$i ; $j < count($arr)-1 ; $j++) { if ($arr[$i] > $arr[$j+1]) {$data      = $arr[$i]; $arr[$i]   = $arr[$j+1];$arr[$j+1] = $data; }}}return $arr;
}
echo "<pre>";
print_r(BubbleSort($arr));

完毕粘贴复制用即可(如有侵权联系必删)

用PHP实现冒泡排序相关推荐

  1. PHP算法题:如何实现冒泡排序

    算法原理: 1.比较相邻的元素,如果第一个比第二个大,那么就交换这两个元素. 2.对每一对相邻元素做同样的工作,从第一对开始到最后一对结束,最后的元素应该会是最大的数. 3.除了最后一个元素外,针对其 ...

  2. C#基础——数组(冒泡排序)

    数组 所谓数组,就是相同数据类型的元素按一定的顺序的集合,就是把有限个类型相同的变量用一个名字来命名,然后用编号区分他们的变量的集合,这个名字称为数组名,编号称为下标.组成数组的各个变量称为数组的分量 ...

  3. python实现冒泡排序完整算法_Python实现冒泡排序算法的完整实例

    冒泡排序:顾名思义就是(较小的值)像泡泡一样往上冒,(大的值)往下沉. 实现原理:依次将相邻两个数值进行比较,较小的数值移到左边,较大的数值移到右边,依次比较完第一轮后,最大的数值应该排在最右边.然后 ...

  4. 为什么双层循环 冒泡排序_冒泡排序的双重循环理解

    主要说一下冒泡排序的一些关键地方的个人理解,比如算法思想,两个循环的作用意义,中间循环变量范围的确定等. 原理:比较两个相邻的元素,将值大的元素交换至右端. 思路:依次比较相邻的两个数,将小数放在前面 ...

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

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

  6. Equalizing Two Strings 冒泡排序or树状数组

    首先考虑排序后相等 如果排序后相等的话就只考虑reverse长度为2的,所以a或者b排序后存在相邻两个字母相等的话就puts YES,n>26也直接puts YES 不然的话就假设c为a,b排完 ...

  7. java冒泡排序_Java中的经典算法之冒泡排序(Bubble Sort)

    原理:比较两个相邻的元素,将值大的元素交换至右端. 思路:依次比较相邻的两个数,将小数放在前面,大数放在后面.即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后.然后比较第2个数和第3个数,将 ...

  8. python冒泡排序与常用数学计算

    一 .冒泡排序: 冒泡排序: 属于交换排序; 两两比较大小,交换位置,如同水泡大的往上(右)跑; n个数从左至右编号从0到n-1,索引0和1比较,如果索引0大,则交换两者位置; 如果索引1大则不用交换 ...

  9. Console-算法-冒泡排序法|倒水法

    ylbtech-Arithmetic:Console-算法-冒泡排序法|倒水法 1.A,案例 -- ================================================== ...

  10. java 冒泡排序和快速排序 实现

    面试的时候经常会遇到面试官让你直接手写排序算法,下面是冒泡排序和快速排序的实现. 冒泡排序 基本流程就是,自下而上比较相邻的两个元素进行比较,让大的元素往下面沉,较小的往上冒.按照排序规则进行比较,如 ...

最新文章

  1. Linux导入ora-39070,impdp 导入数据报ORA-39002,ORA-39070,ORA-39002, ORA-39087
  2. 码流 / 码率 / 比特率 / 帧速率 / 分辨率 / 高清
  3. Spring Boot 2.x基础教程:配置元数据的应用
  4. C#操作SharePoint列表
  5. 岗位推荐 | 蚂蚁金服招聘机器学习、自然语言处理算法工程师
  6. 计算机论文指导书,计算机毕业论文指导书.doc
  7. 云计算和其三种服务模式:IaaS,PaaS和SaaS
  8. activiti 批量 mysql_Activiti6系列(3)- 快速体验
  9. js获取/设置任意元素中间内容的兼容方法
  10. 【Kafka】Kafka WARN Failed to send SSL Close message
  11. java utf8 简繁转换 类库_在Java中进行中文繁体简体转换,基于OpenCC(Open Chinese Convert)方案...
  12. 多个ajax执行混乱问题
  13. 将Web应用性能提高十倍的10条建议
  14. Useful webs
  15. 计算机网络和智能家居,智能家居与传统智能家居到底有什么区别
  16. MVT 之 M——模型
  17. 程序的灵活性与可扩展性
  18. lstm需要优化的参数_1-基于LSTM-GA 的股票价格涨跌预测模型
  19. 李一鹏:一份让我无法拒绝的offer | OneFlow U
  20. 广东计算机一级考什么时候开始,广东2019年计算机一级考试时间

热门文章

  1. python数字转字符串
  2. Win10将资源管理器中的OneDrive移除的方法
  3. “不将就”!一加手机真机评测
  4. 星球文明的未来——人类社会的进化
  5. Android 绘制原理
  6. linux网卡配置详解
  7. 消息称苹果iMac Pro将于2022年现身,而不是今年年底
  8. java在线商城系统源码jsp+servlet+mysql实现的在线商城系统源码
  9. 幽灵行动荒野服务器位置,幽灵行动荒野找出主数据库服务器
  10. 主线程和子线程的区别,线程之间的通信