PHP实现冒泡排序的简单实例


Posted in PHP onMay 26, 2016

1、首先我们必须弄清楚什么是冒泡排序,不理解冒泡排序的原理,我们就无法写出代码。

冒泡排序(BubbleSort)的基本概念是:依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。至此第一趟结束,将最大的数放到了最后。在第二趟:仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再小于第2个数),将小数放前,大数放后,一直比较到倒数第二个数(倒数第一的位置上已经是最大的),第二趟结束,在倒数第二的位置上得到一个新的最大数(其实在整个数列中是第二大的数)。如此下去,重复以上过程,直至最终完成排序。

PHP实现代码:

<?php
  
  //冒泡排序方法

  function bubblesort(&$arr){
      //定义一个变量保存交换的值
    $temp =0;
    for($i=0;$i<count($arr);$i++){
      
      for($j=0;$j<count($arr)-$i-1;$j++){
            
        if($arr[$j]>$arr[$j+1]){
          //如果前面的那个数大于后面的那个数,那么他们就进行交换
          $temp=$arr[$j];
          $arr[$j]=$arr[$j+1];
          $arr[$j+1]=$temp;
        }
      }      
    }
  }

  $arr=array(100,99,200,5,-4,6,-7);
  bubbleSort($arr);
  print_r($arr);  //数组是值传递,所以传递的时候加个&符号就是地址传递,改变外部变量


?>

以上这篇PHP实现冒泡排序的简单实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
用php实现批量查询清除一句话后门的代码
Jan 20 PHP
javascript,php获取函数参数对象的代码
Feb 03 PHP
php中数组首字符过滤功能代码
Jul 31 PHP
php统计文章排行示例
Mar 04 PHP
解决Codeigniter不能上传rar和zip压缩包问题
Mar 07 PHP
php实现httpclient类示例
Apr 08 PHP
解决cPanel无法安装php5.2.17
Jun 22 PHP
jQuery获取json后使用zy_tmpl生成下拉菜单
Mar 27 PHP
基于PHP代码实现中奖概率算法可用于刮刮卡、大转盘等抽奖算法
Dec 20 PHP
PHP检测用户是否关闭浏览器的方法
Feb 14 PHP
php封装的smartyBC类完整实例
Oct 19 PHP
PHP基于pdo的数据库操作类【可支持mysql、sqlserver及oracle】
May 21 PHP
Laravel SQL语句记录方式(推荐)
May 26 #PHP
PHP MVC框架skymvc支持多文件上传
May 26 #PHP
CodeIgniter集成smarty的方法详解
May 26 #PHP
PHPExcel简单读取excel文件示例
May 26 #PHP
php快速排序原理与实现方法分析
May 26 #PHP
深入理解PHP中的empty和isset函数
May 26 #PHP
CodeIgniter常用知识点小结
May 26 #PHP
You might like
PHP中Date()时间日期函数的使用方法小结
2011/04/20 PHP
php从csv文件读取数据并输出到网页的方法
2015/03/14 PHP
PDO::commit讲解
2019/01/27 PHP
MooTools 1.2中的Drag.Move来实现拖放
2009/09/15 Javascript
JS动态创建Table,Tr,Td并赋值的具体实现
2013/07/05 Javascript
js改变鼠标的形状和样式的方法
2014/03/31 Javascript
node.js中的fs.readdirSync方法使用说明
2014/12/17 Javascript
js实现带三角符的手风琴效果
2017/03/01 Javascript
jQueryUI Sortable 应用Demo(分享)
2017/09/07 jQuery
vue项目常用组件和框架结构介绍
2017/12/24 Javascript
详解vue添加删除元素的方法
2018/06/30 Javascript
NodeJs实现简易WEB上传下载服务器
2019/08/10 NodeJs
在vue中利用全局路由钩子给url统一添加公共参数的例子
2019/11/01 Javascript
node使用request请求的方法
2019/12/20 Javascript
JavaScript中数组去重的5种方法
2020/07/04 Javascript
Vue路由 重定向和别名的区别说明
2020/09/09 Javascript
[02:50]2014DOTA2 TI预选赛预选赛 大神专访第一弹!
2014/05/21 DOTA
关于Python面向对象编程的知识点总结
2017/02/14 Python
Python探索之SocketServer详解
2017/10/28 Python
解决python中使用plot画图,图不显示的问题
2018/07/04 Python
python中实现控制小数点位数的方法
2019/01/24 Python
python Django编写接口并用Jmeter测试的方法
2019/07/31 Python
python+selenium 点击单选框-radio的实现方法
2019/09/03 Python
Python连接mysql方法及常用参数
2020/09/01 Python
广告学专业应届生求职信
2013/10/01 职场文书
职专应届生求职信
2013/11/16 职场文书
店长岗位职责
2013/11/21 职场文书
新闻专业个人求职信
2013/12/19 职场文书
中学教师管理制度
2014/01/14 职场文书
运动会领导邀请函
2014/02/05 职场文书
三八妇女节寄语
2015/02/27 职场文书
2016三八妇女节慰问信
2015/11/30 职场文书
Nginx工作原理和优化总结。
2021/04/02 Servers
css实现文章分割线样式的多种方法总结
2021/04/21 HTML / CSS
div与span之间的区别与使用介绍
2021/12/06 HTML / CSS
python图像处理 PIL Image操作实例
2022/04/09 Python