又一个PHP实现的冒泡排序算法分享


Posted in PHP onAugust 21, 2014

经典的冒泡排序法一直是许多程序沿用的其中一种排序法,话说冒泡排序法在效率上比PHP系统函数sort更高效。本章不讨论性能,所以就不拿它来跟系统性能做对比了。

冒泡排序大概的意思是依次比较相邻的两个数,然后根据大小做出排序,直至最后两位数。由于在排序过程中总是小数往前放,大数往后放,相当于气泡往上升,所以称作冒泡排序。但其实在实际过程中也可以根据自己需要反过来用,大树往前放,小数往后放。

<?php
/**
 * PHP中的冒泡排序法使用
 */
 
// 预先声明一个数组
$arr = array (12,45,28,30,88,67);
echo "原数组";
print_r($arr);
echo "<br/>";
//冒泡排序
function maopao($arr){
  // 进行第一层遍历
  for($i=0,$k=count($arr);$i<$k;$i++) {
    // 进行第二层遍历 将数组中每一个元素都与外层元素比较
    // 这里的i+1意思是外层遍历当前元素往后的
    for ($j=$i+1;$j<$k;$j++) {
      // 内外层两个数比较
        if($arr[$i]<$arr[$j]){
        // 先把其中一个数组赋值给临时变量
          $temp = $arr[$j];
        // 交换位置
        $arr[$j] = $arr[$i];
        // 再从临时变量中赋值回来
        $arr[$i] = $temp;
      }
    }
  }
  // 返回排序后的数组
  return $arr;
}
 
// 直接打印排序后的数组
echo '排序后';
print_r(maopao($arr));
 
?>

通过以上代码执行结果

原数组

Array ( [0] => 12 [1] => 45 [2] => 28 [3] => 30 [4] => 88 [5] => 67 )

排序后
Array ( [0] => 88 [1] => 67 [2] => 45 [3] => 30 [4] => 28 [5] => 12 )

这就是冒泡法实例,简单吧!没有神马难度的。
PHP 相关文章推荐
[转帖]PHP世纪万年历
Dec 06 PHP
PHP XML error parsing SOAP payload on line 1
Jun 17 PHP
深入探讨PHP中的内存管理问题
Aug 31 PHP
php获取远程图片的两种 CURL方式和sockets方式获取远程图片
Nov 07 PHP
从零开始学YII2框架(二)通过 Composer 安装扩展插件
Aug 20 PHP
避免Smarty与CSS语法冲突的方法
Mar 02 PHP
PHP命名空间和自动加载类
Apr 03 PHP
PHP调用存储过程返回值不一致问题的解决方法分析
Apr 26 PHP
PHP+Ajax验证码验证用户登录
Jul 20 PHP
Yii2使用表单上传文件的实例代码
Aug 03 PHP
PHPStudy下如何为Apache安装SSL证书的方法步骤
Jan 23 PHP
PHP常用正则表达式精选(推荐)
May 28 PHP
PHP中几个可以提高运行效率的代码写法、技巧分享
Aug 21 #PHP
个人写的PHP验证码生成类分享
Aug 21 #PHP
PHP中使用sleep造成mysql读取失败的案例和解决方法
Aug 21 #PHP
从零开始学YII2框架(六)高级应用程序模板
Aug 20 #PHP
ThinkPHP登录功能的实现方法
Aug 20 #PHP
从零开始学YII2框架(五)快速生成代码工具 Gii 的使用
Aug 20 #PHP
PHP面向对象程序设计之类常量用法实例
Aug 20 #PHP
You might like
yii2.0之GridView自定义按钮和链接用法
2014/12/15 PHP
详解WordPress开发中用于获取分类及子页面的函数用法
2016/01/08 PHP
php实现的操作excel类详解
2016/01/15 PHP
PHP实现的链式队列结构示例
2017/09/15 PHP
基于ThinkPHP5.0实现图片上传插件
2017/09/25 PHP
php生成HTML文件的类方法
2019/10/11 PHP
国外的为初学者写的JavaScript教程
2008/06/09 Javascript
判断JavaScript对象是否可用的最正确方法分析
2008/10/03 Javascript
mailto的使用技巧分享
2012/12/21 Javascript
当鼠标移动到图片上时跟随鼠标显示放大的图片效果
2013/06/06 Javascript
jQuery中使用data()方法读取HTML5自定义属性data-*实例
2014/04/11 Javascript
javascript作用域和闭包使用详解
2014/04/25 Javascript
EasyUI中datagrid在ie下reload失败解决方案
2015/03/09 Javascript
js控制div弹出层实现方法
2015/05/11 Javascript
javascript 利用arguments实现可变长参数
2016/11/21 Javascript
利用JS判断鼠标移入元素的方向
2016/12/11 Javascript
BootstrapTable请求数据时设置超时(timeout)的方法
2017/01/22 Javascript
微信小程序 出现错误:{&quot;baseresponse&quot;:{&quot;errcode&quot;:-80002,&quot;errmsg&quot;:&quot;&quot;}}解决办法
2017/02/23 Javascript
JavaScript在控件上添加倒计时功能的实现代码
2017/07/04 Javascript
深入浅出理解JavaScript闭包的功能与用法
2018/08/01 Javascript
使用layer.msg 时间设置不起作用的解决方法
2019/09/12 Javascript
vue 解决computed修改data数据的问题
2019/11/06 Javascript
[01:33:25]DOTA2-DPC中国联赛 正赛 Elephant vs IG BO3 第一场 1月24日
2021/03/11 DOTA
Python open读写文件实现脚本
2008/09/06 Python
python进程管理工具supervisor使用实例
2014/09/17 Python
Python线程详解
2015/06/24 Python
python抓取需要扫微信登陆页面
2019/04/29 Python
Opencv实现抠图背景图替换功能
2019/05/21 Python
来自Ocado的宠物商店:Fetch
2018/07/10 全球购物
英国旅行箱包和行李箱购物网站:Travel Luggage & Cabin Bags
2019/08/26 全球购物
最新的互联网创业计划书
2014/01/10 职场文书
制作部班长职位说明书
2014/02/26 职场文书
八项规定整改方案
2014/10/01 职场文书
2015年乡镇流动人口工作总结
2015/05/12 职场文书
夏洛特的网观后感
2015/06/15 职场文书
大学生党课感想
2015/08/11 职场文书