又一个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中使用Sockets 从Usenet中获取文件
Jan 10 PHP
php下检测字符串是否是utf8编码的代码
Jun 28 PHP
PHP 字符串加密函数(在指定时间内加密还原字符串,超时无法还原)
Apr 28 PHP
php获取当前页面完整URL地址
Dec 30 PHP
ThinkPHP中html:list标签用法分析
Jan 09 PHP
PHP简单判断字符串是否包含另一个字符串的方法
Mar 25 PHP
yii2分页之实现跳转到具体某页的实例代码
Jun 02 PHP
php正则去除网页中所有的html,js,css,注释的实现方法
Nov 03 PHP
php实现水印文字和缩略图的方法示例
Dec 29 PHP
php获取微信基础接口凭证Access_token
Aug 23 PHP
解决Laravel自定义类引入和命名空间的问题
Oct 15 PHP
一文搞懂PHP中的抽象类和接口
May 25 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
php中的三元运算符使用说明
2011/07/03 PHP
php使用unset()删除数组中某个单元(键)的方法
2015/02/17 PHP
PHP处理会话函数大总结
2015/08/05 PHP
PHP页面输出搜索后跳转下一页的处理方法
2016/09/30 PHP
php使用高斯算法实现图片的模糊处理功能示例
2016/11/11 PHP
Laravel 使用查询构造器配合原生sql语句查询的例子
2019/10/12 PHP
javascript 短路法代码精简
2009/08/20 Javascript
JQuery对checkbox操作 (循环获取)
2011/05/20 Javascript
JavaScript 变量作用域分析
2011/07/04 Javascript
如何将JS的变量值传递给ASP变量
2012/12/10 Javascript
JavaScript获取XML数据附示例截图
2014/03/05 Javascript
技术男用来对妹子表白的百度首页
2014/07/23 Javascript
js 左右悬浮对联广告代码示例
2014/12/12 Javascript
ES6的新特性概览
2016/03/10 Javascript
JS简单编号生成器实现方法(附demo源码下载)
2016/04/05 Javascript
Bootstrap实现导航栏的2种方式
2016/11/28 Javascript
微信小程序 图片绝对定位(背景图片)
2017/04/05 Javascript
Vue.js实现网格列表布局转换方法
2017/08/25 Javascript
vue 页面加载进度条组件实例
2018/02/05 Javascript
nodeJs爬虫的技术点总结
2018/05/13 NodeJs
小程序和web画三角形实现解析
2019/09/02 Javascript
node.js中 redis 的安装和基本操作示例
2020/02/10 Javascript
vue 封装面包屑组件教程
2020/11/16 Javascript
Python检测字符串中是否包含某字符集合中的字符
2015/05/21 Python
用python给自己做一款小说阅读器过程详解
2019/07/11 Python
python 生成任意形状的凸包图代码
2020/04/16 Python
python开根号实例讲解
2020/08/30 Python
python 实时调取摄像头的示例代码
2020/11/25 Python
厨房工作人员岗位职责
2013/11/15 职场文书
环境科学专业优秀毕业生自荐书
2014/02/03 职场文书
竞选部长演讲稿
2014/04/26 职场文书
大专生自荐书范文
2014/06/22 职场文书
男方婚礼答谢词
2015/01/20 职场文书
奖学金感谢信
2015/01/21 职场文书
2019假期福利管理制度!
2019/07/15 职场文书
小米11和iphone12哪个值得买?小米11对比iphone12评测
2021/04/21 数码科技