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 相关文章推荐
用函数读出数据表内容放入二维数组
Oct 09 PHP
php快速url重写更新版[需php 5.30以上]
Apr 25 PHP
简单实用的.net DataTable导出Execl
Oct 28 PHP
Yii结合CKEditor实现图片上传功能
Jun 13 PHP
smarty表格换行实例
Dec 15 PHP
jQuery向下滚动即时加载内容实现的瀑布流效果
Jan 07 PHP
PHP简单读取PDF页数的实现方法
Jul 21 PHP
laravel5创建service provider和facade的方法详解
Jul 26 PHP
thinkPHP中volist标签用法示例
Dec 06 PHP
php中通用的excel导出方法实例
Dec 30 PHP
php实现构建排除当前元素的乘积数组方法
Oct 06 PHP
Laravel 使用查询构造器配合原生sql语句查询的例子
Oct 12 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 file_get_contents抓取Gzip网页乱码的三种解决方法
2013/11/12 PHP
JQuery的ajax基础上的超强GridView展示
2009/09/18 Javascript
通过判断JavaScript的版本实现执行不同的代码
2010/05/11 Javascript
Jquery操作下拉框(DropDownList)实现取值赋值
2013/08/13 Javascript
让新消息在网页标题闪烁提示的jQuery代码
2013/11/04 Javascript
js判断文本框剩余可输入字数的方法
2015/02/04 Javascript
轻松搞定js表单验证
2016/10/13 Javascript
Bootstrap 3 进度条的实现
2017/02/22 Javascript
Angular4实现动态添加删除表单输入框功能
2017/08/11 Javascript
Vue.js2.0中的变化小结
2017/10/24 Javascript
VUE重点问题总结
2018/03/19 Javascript
Vue项目使用CDN优化首屏加载问题
2018/04/01 Javascript
vue 实现 rem 布局或vw 布局的方法
2019/11/13 Javascript
[04:10]DOTA2英雄梦之声_第11期_圣堂刺客
2014/06/21 DOTA
python使用urllib模块开发的多线程豆瓣小站mp3下载器
2014/01/16 Python
python实现登陆知乎获得个人收藏并保存为word文件
2015/03/16 Python
Python中的Classes和Metaclasses详解
2015/04/02 Python
Pycharm学习教程(4) Python解释器的相关配置
2017/05/03 Python
numpy.std() 计算矩阵标准差的方法
2018/07/11 Python
Django框架orM与自定义SQL语句混合事务控制操作
2019/06/27 Python
Python Pandas 如何shuffle(打乱)数据
2019/07/30 Python
Python3 无重复字符的最长子串的实现
2019/10/08 Python
Python socket实现的文件下载器功能示例
2019/11/15 Python
Pytorch之Variable的用法
2019/12/31 Python
Selenium启动Chrome时配置选项详解
2020/03/18 Python
CSS3弹性盒模型flex box快速入门心得(必看篇)
2016/05/24 HTML / CSS
详解HTML5布局和HTML5标签
2020/10/26 HTML / CSS
意大利专业化妆品品牌:KIKO MILANO
2017/02/01 全球购物
升职自荐信范文
2013/10/05 职场文书
经理职责范文
2013/11/08 职场文书
机电一体化自荐信
2013/12/10 职场文书
少年闰土教学反思
2014/02/22 职场文书
二手房购房意向书范本
2014/04/01 职场文书
质量管理标语
2014/06/12 职场文书
小学安全工作总结2015
2015/05/18 职场文书
浅谈Python从全局与局部变量到装饰器的相关知识
2021/06/21 Python