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 和 MySQL 开发的 8 个技巧
Oct 09 PHP
php将数据库中的电话号码读取出来并生成图片
Aug 31 PHP
php 设计模式之 单例模式
Dec 19 PHP
PHP 加密/解密函数 dencrypt(动态密文,带压缩功能,支持中文)
Jan 30 PHP
PHP中使用FFMPEG获取视频缩略图和视频总时长实例
May 04 PHP
ThinkPHP3.1之D方法实例详解
Jun 20 PHP
自己写的php curl库实现整站克隆功能
Feb 12 PHP
PHP中数据类型转换的三种方式
Apr 02 PHP
[原创]PHP实现逐行删除文件右侧空格的方法
Dec 25 PHP
PHP实现加密文本文件并限制特定页面的存取的效果
Oct 21 PHP
Yii2下点击验证码的切换实例代码
Mar 14 PHP
gearman中任务的优先级和返回状态实例分析
Feb 27 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并发对MYSQL造成压力的解决方法
2013/02/21 PHP
PHP函数之日期时间函数date()使用详解
2013/09/09 PHP
php获取ip及网址的简单方法(必看)
2017/04/01 PHP
php数组实现根据某个键值将相同键值合并生成新二维数组的方法
2017/04/26 PHP
PHP实现字符串翻转功能的方法【递归与循环算法】
2017/11/03 PHP
php 读写json文件及修改json的方法
2018/03/07 PHP
Laravel 加载第三方类库的方法
2018/04/20 PHP
Laravel向公共模板赋值方法总结
2019/06/25 PHP
ASP.NET jQuery 实例17 通过使用jQuery validation插件校验ListBox
2012/02/03 Javascript
treepanel动态加载数据实现代码
2012/12/15 Javascript
javascript父、子页面交互技巧总结
2014/08/08 Javascript
JavaScript学习小结(7)之JS RegExp
2015/11/29 Javascript
JavaScript中函数声明与函数表达式的区别详解
2016/08/18 Javascript
微信小程序 wxapp内容组件 icon详细介绍
2016/10/31 Javascript
jquery.validate表单验证插件使用详解
2017/06/21 jQuery
JavaScript之DOM_动力节点Java学院整理
2017/07/03 Javascript
vue webpack实用技巧总结
2018/04/24 Javascript
JS实现盒子拖拽效果
2020/02/06 Javascript
linux 下以二进制的方式安装 nodejs
2020/02/12 NodeJs
[59:48]DOTA2-DPC中国联赛 正赛 VG vs Magma BO3 第一场 1月26日
2021/03/11 DOTA
python3实现跳一跳点击跳跃
2018/01/08 Python
使用Python从零开始撸一个区块链
2018/03/14 Python
python之线程通过信号pyqtSignal刷新ui的方法
2019/01/11 Python
python多线程并发让两个LED同时亮的方法
2019/02/18 Python
python实现雪花飘落效果实例讲解
2019/06/18 Python
亚洲最大旅游体验平台:KKday
2017/10/21 全球购物
size?德国官方网站:英国伦敦的球鞋精品店
2018/03/17 全球购物
Easy Spirit官网:美国休闲鞋履中的代表品牌
2019/04/12 全球购物
Charles&Keith美国官方网站:新加坡快时尚鞋类和配饰零售商
2019/11/27 全球购物
捷克家具销售网站:SCONTO Nábytek
2020/01/02 全球购物
软件工程师面试题
2012/06/25 面试题
师范应届生语文教师求职信
2013/10/29 职场文书
教育读书笔记
2015/07/02 职场文书
学校教代会开幕词
2016/03/04 职场文书
element多个表单校验的实现
2021/05/27 Javascript
分位数回归模型quantile regeression应用详解及示例教程
2021/11/02 Python