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中文件上传的一个问题
Sep 04 PHP
php学习笔记 面向对象的构造与析构方法
Jun 13 PHP
js+php实现静态页面实时调用用户登陆状态的方法
Jan 04 PHP
PHP实现HTML页面静态化的方法
Nov 04 PHP
Zend Framework教程之Zend_Registry对象用法分析
Mar 22 PHP
PHP控制前台弹出对话框的实现方法
Aug 21 PHP
PHP7匿名类用法分析
Sep 26 PHP
YII2框架中excel表格导出的方法详解
Jul 21 PHP
php基于协程实现异步的方法分析
Jul 17 PHP
laravel config文件配置全局变量的例子
Oct 13 PHP
PHP架构及原理知识点详解
Dec 22 PHP
PHP 图片处理
Sep 16 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扩展编写点滴 技巧收集
2010/03/09 PHP
探讨各种PHP字符串函数的总结分析
2013/06/05 PHP
ThinkPHP中Common/common.php文件常用函数功能分析
2016/05/20 PHP
PHP7匿名类的用法示例
2019/04/05 PHP
Javascript中Eval函数的使用说明
2008/10/11 Javascript
JavaScript Event事件学习第一章 Event介绍
2010/02/07 Javascript
jquery学习笔记 用jquery实现无刷新登录
2011/08/08 Javascript
javascript中的void运算符语法及使用介绍
2013/03/10 Javascript
javascript获取所有同类checkbox选项(实例代码)
2013/11/07 Javascript
jquery form 隐藏的input 选择
2014/04/29 Javascript
jQuery操作表单常用控件方法小结
2015/03/23 Javascript
JavaScript ParseFloat()方法
2015/12/18 Javascript
js判断某个字符出现的次数的简单实例
2016/06/03 Javascript
JS模拟实现ECMAScript5新增的数组方法
2017/03/20 Javascript
JavaScript数据结构之单链表和循环链表
2017/11/28 Javascript
微信小程序wx.previewImage预览图片实例详解
2017/12/07 Javascript
JS中精巧的自动柯里化实现方法
2017/12/12 Javascript
vue-router中的hash和history两种模式的区别
2018/07/17 Javascript
详解如何解决Vue和vue-template-compiler版本之间的问题
2018/09/17 Javascript
解决一个微信号同时支持多个环境网页授权问题
2019/08/07 Javascript
Python实现迭代时使用索引的方法示例
2018/06/05 Python
Python读取yaml文件的详细教程
2020/07/21 Python
利用css3 translate完美实现表头固定效果
2017/02/28 HTML / CSS
Canvas中设置width与height的问题浅析
2018/11/01 HTML / CSS
Html5+CSS3+EL表达式问题小结
2020/12/19 HTML / CSS
信用社实习人员自我鉴定
2013/09/20 职场文书
酒店管理专业毕业生推荐信
2013/11/10 职场文书
后备干部培训方案
2014/05/22 职场文书
计算机应用应届生求职信
2014/07/12 职场文书
植物园观后感
2015/06/11 职场文书
CSS 文字装饰 text-decoration & text-emphasis 详解
2021/04/06 HTML / CSS
spring cloud gateway中如何读取请求参数
2021/07/15 Java/Android
Python使用pyecharts控件绘制图表
2022/06/05 Python
在SQL Server中使用 Try Catch 处理异常的示例详解
2022/07/15 SQL Server
MySQL的表级锁,行级锁,排它锁和共享锁
2022/07/15 MySQL
面试官问我Mysql的存储引擎了解多少
2022/08/05 MySQL