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 相关文章推荐
第十节 抽象方法和抽象类 [10]
Oct 09 PHP
php数组函数序列之sort() 对数组的元素值进行升序排序
Nov 02 PHP
PHP YII框架开发小技巧之模型(models)中rules自定义验证规则
Nov 16 PHP
深入理解PHP原理之执行周期分析
Jun 01 PHP
Yii2――使用数据库操作汇总(增删查改、事务)
Dec 19 PHP
详谈PHP中的密码安全性Password Hashing
Feb 04 PHP
PHP连接MYSQL数据库的3种常用方法
Feb 27 PHP
ThinkPHP实现分页功能
Apr 28 PHP
form自动提交实例讲解
Jul 10 PHP
PHP操作redis实现的分页列表,新增,删除功能封装类与用法示例
Aug 04 PHP
PHPUnit + Laravel单元测试常用技能
Nov 06 PHP
如何在Laravel5.8中正确地应用Repository设计模式
Nov 26 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网上调查系统
2006/10/09 PHP
让你的PHP同时支持GIF、png、JPEG
2006/10/09 PHP
PHP中for循环语句的几种变型
2006/11/26 PHP
php生成shtml类用法实例
2014/12/09 PHP
php运行提示:Fatal error Allowed memory size内存不足的解决方法
2014/12/17 PHP
优化WordPress的Google字体以加速国内服务器上的运行
2015/11/24 PHP
Yii实现单用户博客系统文章详情页插入评论表单的方法
2015/12/28 PHP
php 中的closure用法详解
2017/06/12 PHP
JavaScript Cookie的读取和写入函数
2009/12/08 Javascript
javascript 中String.match()与RegExp.exec()的区别说明
2013/01/10 Javascript
解决Jquery load()加载GB2312页面时出现乱码的两种方案
2013/09/10 Javascript
js中文逗号转英文实现
2014/02/11 Javascript
jquery实现顶部向右伸缩的导航区域代码
2015/09/02 Javascript
基于jQuery实现照片墙自动播放特效
2017/01/12 Javascript
three.js实现围绕某物体旋转
2017/01/25 Javascript
微信小程序的生命周期的详解
2017/10/19 Javascript
解决vue.js 数据渲染成功仍报错的问题
2018/08/25 Javascript
微信小程序时间标签和时间范围的联动效果
2019/02/15 Javascript
express启用https使用小记
2019/05/21 Javascript
深入解析koa之中间件流程控制
2019/06/17 Javascript
JavaScript实现的开关灯泡点击切换特效示例
2019/07/08 Javascript
vue element自定义表单验证请求后端接口验证
2019/12/11 Javascript
[02:40]DOTA2英雄基础教程 炼金术士
2013/12/23 DOTA
[03:42]2014DOTA2国际邀请赛 第三日比赛排位扑朔迷离
2014/07/12 DOTA
使用PDB模式调试Python程序介绍
2015/04/05 Python
python3爬取各类天气信息
2018/02/24 Python
Python实现矩阵相乘的三种方法小结
2018/07/26 Python
浅谈Pandas:Series和DataFrame间的算术元素
2018/12/22 Python
【python】matplotlib动态显示详解
2019/04/11 Python
使用python实现多维数据降维操作
2020/02/24 Python
Python xml、字典、json、类四种数据类型如何实现互相转换
2020/05/27 Python
Theory美国官网:后现代都市风时装品牌
2018/05/09 全球购物
离婚协议书怎么写2014
2014/09/30 职场文书
检察院院长群众路线教育实践活动个人整改措施
2014/10/04 职场文书
2017春节晚会开幕词
2016/03/03 职场文书
关于python3 opencv 图像二值化的问题(cv2.adaptiveThreshold函数)
2022/04/04 Python