又一个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数据库连接
Oct 09 PHP
全文搜索和替换
Oct 09 PHP
php trim 去除空字符的定义与语法介绍
May 31 PHP
《PHP编程最快明白》第五讲:php目录、文件操作
Nov 01 PHP
php函数的常用方法及注意之处小结
Jul 10 PHP
使用Discuz关键词服务器实现PHP中文分词
Mar 11 PHP
php检测图片主要颜色的方法
Jul 01 PHP
PHP封装CURL扩展类实例
Jul 28 PHP
浅谈php中变量的数据类型判断函数
Mar 04 PHP
PHP中error_reporting函数用法详细介绍
Jun 11 PHP
PHP实现动态创建XML文档的方法
Mar 30 PHP
PHP+MariaDB数据库操作基本技巧备忘总结
May 21 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与javascript的两种交互方式
2006/10/09 PHP
优化PHP代码的53条建议
2008/03/27 PHP
php中jpgraph类库的使用介绍
2013/08/08 PHP
PHP查看当前变量类型的方法
2015/07/31 PHP
thinkPHP实现的联动菜单功能详解
2017/05/05 PHP
Javascript 实现TreeView CheckBox全选效果
2010/01/11 Javascript
有关js的变量作用域和this指针的讨论
2010/12/16 Javascript
Jquery通过Ajax访问XML数据的小例子
2013/11/18 Javascript
js控制输入框获得和失去焦点时状态显示的方法
2015/01/30 Javascript
基于PHP和Mysql相结合使用jqGrid读取数据并显示
2015/12/02 Javascript
微信小程序 实例应用(记账)详解
2016/09/28 Javascript
Vue仿今日头条实例详解
2018/02/06 Javascript
解决Layui中layer报错的问题
2019/09/03 Javascript
Layui给switch添加响应事件的例子
2019/09/03 Javascript
[03:51]吞吞映像 每周精彩击杀top10第二弹
2014/06/25 DOTA
Python中模拟enum枚举类型的5种方法分享
2014/11/22 Python
python简单的函数定义和用法实例
2015/05/07 Python
详解supervisor使用教程
2017/11/21 Python
Python面向对象之反射/自省机制实例分析
2018/08/24 Python
一文秒懂python读写csv xml json文件各种骚操作
2019/07/04 Python
python读取excel进行遍历/xlrd模块操作
2020/07/12 Python
Python 处理日期时间的Arrow库使用
2020/08/18 Python
Pycharm2020最新激活码|永久激活(附最新激活码和插件的详细教程)
2020/09/29 Python
python 如何设置守护进程
2020/10/29 Python
全网最详细的PyCharm+Anaconda的安装过程图解
2021/01/25 Python
浅谈cookie和localStorage那些事
2019/08/27 HTML / CSS
Gloeilampgoedkoop荷兰:在线购买灯泡
2019/02/16 全球购物
How to spawning asynchronous work in J2EE
2016/08/29 面试题
函授药学自我鉴定
2014/02/07 职场文书
运动会广播稿200字(10篇)
2014/10/12 职场文书
销售经理工作检讨书
2015/02/19 职场文书
2015年社区矫正工作总结
2015/04/21 职场文书
员工拾金不昧表扬稿
2015/05/05 职场文书
四大名著读书笔记
2015/06/25 职场文书
高中生军训感言
2015/08/01 职场文书
手把手带你彻底卸载MySQL数据库
2022/06/14 MySQL