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开发中常用的三个表单验证函数使用小结
Mar 03 PHP
php中删除字符串中最先出现某个字符的实现代码
Feb 03 PHP
深入探讨:Nginx 502 Bad Gateway错误的解决方法
Jun 03 PHP
深入密码加salt原理的分析
Jun 06 PHP
php实现简单洗牌算法
Jun 18 PHP
解析如何用php screw加密php源代码
Jun 20 PHP
提高PHP性能的编码技巧以及性能优化详细解析
Aug 24 PHP
php中get_object_vars()方法用法实例
Feb 08 PHP
PHP实现将视频转成MP4并获取视频预览图的方法
Mar 12 PHP
php加密解密字符串示例
Oct 13 PHP
TP5框架实现自定义分页样式的方法示例
Apr 05 PHP
PHP优化之批量操作MySQL实例分析
Apr 23 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中文字符截取防乱码
2008/03/28 PHP
国外比较好的几个的Php开源建站平台小结
2010/04/22 PHP
PHP学习笔记之数组篇
2011/06/28 PHP
php文档更新介绍
2011/07/22 PHP
采集邮箱的php代码(抓取网页中的邮箱地址)
2012/07/17 PHP
php使HTML标签自动补全闭合函数代码
2012/10/04 PHP
php图片加中文水印实现代码分享
2012/10/31 PHP
php操作xml入门之xml基本介绍及xml标签元素
2015/01/23 PHP
基于命令行执行带参数的php脚本并取得参数的方法
2016/01/25 PHP
yii2实现分页,带搜索的分页功能示例
2017/01/07 PHP
浅谈PHP接入(第三方登录)QQ登录 OAuth2.0 过程中遇到的坑
2017/10/13 PHP
小程序微信支付功能配置方法示例详解【基于thinkPHP】
2019/05/05 PHP
php使用yield对性能提升的测试实例分析
2019/09/19 PHP
jquery scrollTop方法根据滚动像素显示隐藏顶部导航条
2013/05/27 Javascript
javascript中的=等号个数问题两个跟三个有什么区别
2013/10/23 Javascript
js之事件冒泡和事件捕获详细介绍
2013/10/28 Javascript
JavaScript使用setInterval()函数实现简单轮询操作的方法
2015/02/02 Javascript
AngularJS ngModel实现指令与输入直接的数据通信
2016/09/21 Javascript
BootStrap Fileinput初始化时的一些参数
2016/12/30 Javascript
浅谈angular4.0中路由传递参数、获取参数最nice的写法
2018/03/12 Javascript
jQuery实现表单动态添加与删除数据操作示例
2018/07/03 jQuery
Angular7中创建组件/自定义指令/管道的方法实例详解
2019/04/02 Javascript
[25:45]2018DOTA2亚洲邀请赛4.5SOLO赛 Sylar vs Paparazi
2018/04/06 DOTA
Python利用ansible分发处理任务
2015/08/04 Python
Python使用os模块和fileinput模块来操作文件目录
2016/01/19 Python
Python变量访问权限控制详解
2019/06/29 Python
Python高级编程之消息队列(Queue)与进程池(Pool)实例详解
2019/11/01 Python
ubuntu 18.04 安装opencv3.4.5的教程(图解)
2019/11/04 Python
python实现贪吃蛇游戏源码
2020/03/21 Python
什么是Python中的顺序表
2020/06/02 Python
python如何控制进程或者线程的个数
2020/10/16 Python
HTML5 File接口在web页面上使用文件下载
2017/02/27 HTML / CSS
台湾旅游网站:灿星旅游
2018/10/11 全球购物
书法培训心得体会
2014/01/05 职场文书
神龙架导游词
2015/02/11 职场文书
【超详细】八大排序算法的各项比较以及各自特点
2021/03/31 Python