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编程最快明白》第四讲:日期、表单接收、session、cookie
Nov 01 PHP
php读取文件内容至字符串中,同时去除换行、空行、行首行尾空格(Zjmainstay原创)
Jul 31 PHP
php ckeditor上传图片文件名乱码解决方法
Nov 15 PHP
PHP提示Deprecated: mysql_connect(): The mysql extension is deprecated的解决方法
Aug 28 PHP
PHP中开启gzip压缩的2种方法
Jan 31 PHP
php通过文件流方式复制文件的方法
Mar 13 PHP
php微信公众账号开发之前五个坑(一)
Sep 18 PHP
php版微信发红包接口用法示例
Sep 23 PHP
注释PHP和html混合代码的小技巧(分享)
Nov 03 PHP
php 自定义错误日志实例详解
Nov 12 PHP
Laravel中七个非常有用但很少人知道的Carbon方法
Sep 21 PHP
Laravel 实现添加多语言提示信息
Oct 25 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
ajax缓存问题解决途径
2006/12/06 PHP
IIS6+PHP5+MySQL5+Zend Optimizer+phpMyAdmin安装配置图文教程 2009年
2009/06/08 PHP
PHP中类的自动加载的方法
2017/03/17 PHP
PHP getID3类的使用方法学习笔记【附getID3源码下载】
2019/10/18 PHP
Laravel 手动开关 Eloquent 修改器的操作方法
2019/12/30 PHP
select 控制网页内容隐藏于显示的实现代码
2010/05/25 Javascript
通过下拉框的值来确定输入框是否可以为空的代码
2011/10/18 Javascript
JQuery触发radio或checkbox的change事件
2012/12/18 Javascript
jquery zTree异步加载简单实例分享
2013/02/05 Javascript
jquery制作弹窗提示窗口代码分享
2014/03/02 Javascript
NodeJS学习笔记之MongoDB模块
2015/01/13 NodeJs
浅析Bootstrap表格的使用
2016/06/23 Javascript
js实现日历的简单算法
2017/01/24 Javascript
Vue+Flask实现简单的登录验证跳转的示例代码
2018/01/13 Javascript
在Vue中使用axios请求拦截的实现方法
2018/10/25 Javascript
微信小程序开发之map地图组件定位并手动修改位置偏差
2019/08/17 Javascript
[01:00]一分钟回顾2018DOTA2亚洲邀请赛现场活动
2018/04/07 DOTA
python完成FizzBuzzWhizz问题(拉勾网面试题)示例
2014/05/05 Python
Python中生成器和迭代器的区别详解
2018/02/10 Python
在VS Code上搭建Python开发环境的方法
2018/04/06 Python
Python实现手写一个类似django的web框架示例
2018/07/20 Python
利用Python如何批量修改数据库执行Sql文件
2018/07/29 Python
对python for 文件指定行读写操作详解
2018/12/29 Python
Python静态类型检查新工具之pyright 使用指南
2019/04/26 Python
python 中不同包 类 方法 之间的调用详解
2020/03/09 Python
python 对xml解析的示例
2021/02/27 Python
一个精品风格的世界:Atterley
2019/05/01 全球购物
linux面试题参考答案(10)
2016/10/26 面试题
司机岗位职责
2013/11/15 职场文书
自我鉴定三原则
2014/01/13 职场文书
大班亲子运动会方案
2014/06/10 职场文书
毕业大学生自荐信
2014/06/17 职场文书
本科生自荐信
2014/06/18 职场文书
2015年乡镇组织委员工作总结
2015/10/23 职场文书
redis cluster支持pipeline的实现思路
2021/06/23 Redis