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中inlcude()性能对比详解
Sep 16 PHP
php cli 小技巧
Jun 03 PHP
php记录代码执行时间(实现代码)
Jul 05 PHP
Laravel 5.0 发布 新版本特性详解
Feb 10 PHP
3种php生成唯一id的方法
Nov 23 PHP
PHP验证码生成原理和实现
Jan 24 PHP
PHP 在数组中搜索给定的简单实例 array_search 函数
Jun 13 PHP
php使用高斯算法实现图片的模糊处理功能示例
Nov 11 PHP
Yii2实现中国省市区三级联动实例
Feb 08 PHP
ThinkPHP框架整合微信支付之Native 扫码支付模式一图文详解
Apr 09 PHP
关于Yii中模型场景的一些简单介绍
Sep 22 PHP
浅谈laravel数据库查询返回的数据形式
Oct 21 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教程 变量定义
2009/10/23 PHP
php实现的仿阿里巴巴实现同类产品翻页
2009/12/11 PHP
PHP对字符串的递增运算分析
2010/08/08 PHP
PHP IF ELSE简化/三元一次式的使用
2011/08/22 PHP
php各种编码集详解和以及在什么情况下进行使用
2011/09/11 PHP
php网页标题中文乱码的有效解决方法
2014/03/05 PHP
PHP安装memcached扩展笔记
2015/05/28 PHP
PHP中key和current,next的联合运用实例分析
2016/03/29 PHP
laravel中的错误与日志用法详解
2016/07/26 PHP
PHP实现页面静态化深入讲解
2021/03/04 PHP
让GoogleCode的SVN下的HTML文件在FireFox下正常显示.
2009/05/25 Javascript
EXT中xtype的含义分析
2010/01/07 Javascript
深入理解JavaScript系列(3) 全面解析Module模式
2012/01/15 Javascript
jquery ready(fn)事件使用介绍
2013/08/21 Javascript
javascript相等运算符与等同运算符详细介绍
2013/11/09 Javascript
JS网页图片按比例自适应缩放实现方法
2014/01/15 Javascript
php,js,css字符串截取的办法集锦
2014/09/26 Javascript
vue组件间通信解析
2017/03/01 Javascript
Angular.js基础学习之初始化
2017/03/10 Javascript
浅谈vue中关于checkbox数据绑定v-model指令的个人理解
2018/11/14 Javascript
JavaScript 严格模式(use strict)用法实例分析
2020/03/04 Javascript
[08:07]DOTA2每周TOP10 精彩击杀集锦vol.8
2014/06/25 DOTA
python抓取京东价格分析京东商品价格走势
2014/01/09 Python
在Python中使用M2Crypto模块实现AES加密的教程
2015/04/08 Python
python实现简单socket通信的方法
2016/04/19 Python
python中快速进行多个字符替换的方法小结
2016/12/15 Python
python网络应用开发知识点浅析
2019/05/28 Python
PyQt5 在label显示的图片中绘制矩形的方法
2019/06/17 Python
django admin组件使用方法详解
2019/07/19 Python
win10下安装Anaconda的教程(python环境+jupyter_notebook)
2019/10/23 Python
TensorFlow 显存使用机制详解
2020/02/03 Python
Python re正则表达式元字符分组()用法分享
2020/02/10 Python
Herschel Supply Co.美国:背包、手提袋及配件
2020/11/24 全球购物
运动会100米解说词
2014/01/23 职场文书
乳制品整治工作方案
2014/05/29 职场文书
WINDOWS下安装mysql 8.x 的方法图文教程
2022/04/19 MySQL