又一个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 相关文章推荐
对javascript和select部件的结合运用
Oct 09 PHP
扩展你的 PHP 之入门篇
Dec 04 PHP
apache rewrite_module模块使用教程
Jan 10 PHP
PHP初学者最感迷茫的问题小结
Mar 27 PHP
对text数据类型不支持代码页转换 从: 1252 到: 936
Apr 23 PHP
PHP获取文件夹内文件数的方法
Mar 12 PHP
PHP实现的简单网络硬盘
Jul 29 PHP
PHP仿微信多图片预览上传实例代码
Sep 13 PHP
php中foreach结合curl实现多线程的方法分析
Sep 22 PHP
基于jQueryUI和Corethink实现百度的搜索提示功能
Nov 09 PHP
PHP实现微信申请退款功能
Oct 01 PHP
基于PHP实现短信验证码发送次数限制
Jul 11 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
动画 《Pokemon Sword·Shield》系列WEB动画《薄明之翼》第2话声优阵容公开!
2020/03/06 日漫
PHP的开发框架的现状和展望
2007/03/16 PHP
php输出金字塔的2种实现方法
2014/12/16 PHP
PHP页面转UTF-8中文编码乱码的解决办法
2015/10/20 PHP
PHP 与 UTF-8 的最佳实践详细介绍
2017/01/04 PHP
php实时倒计时功能实现方法详解
2017/02/27 PHP
PHP实现打包zip并下载功能
2018/06/12 PHP
用JavaScrpt实现文件夹简单轻松加密的实现方法图文
2008/09/08 Javascript
range 标准化之获取
2011/08/28 Javascript
jQuery.prototype.init选择器构造函数源码思路分析
2013/02/05 Javascript
JQuery之focus函数使用介绍
2013/08/20 Javascript
showModalDialog模态对话框的使用详解以及浏览器兼容
2014/01/11 Javascript
调用innerHTML之后onclick失效问题的解决方法
2014/01/28 Javascript
jQuery UI库中dialog对话框功能使用全解析
2016/04/23 Javascript
javascript创建对象的几种模式介绍
2016/05/06 Javascript
微信小程序本作用域下调用全局JS详解及实例
2017/02/22 Javascript
一步步教你利用Canvas对图片进行处理
2017/09/19 Javascript
浅谈node.js 命令行工具(cli)
2018/05/10 Javascript
基于JS实现带动画效果的流程进度条
2018/06/01 Javascript
Fetch超时设置与终止请求详解
2019/05/18 Javascript
Windows下PyMongo下载及安装教程
2015/04/27 Python
Python+Pika+RabbitMQ环境部署及实现工作队列的实例教程
2016/06/29 Python
Python 列表(List) 的三种遍历方法实例 详解
2017/04/15 Python
Python中三元表达式的几种写法介绍
2019/03/04 Python
pytorch-神经网络拟合曲线实例
2020/01/15 Python
pycharm 复制代码出现空格的解决方式
2021/01/15 Python
python中子类与父类的关系基础知识点
2021/02/02 Python
大学三年的自我评价
2013/12/25 职场文书
教育技术学专业职业规划书
2014/03/03 职场文书
全国税务系统先进集体事迹材料
2014/05/19 职场文书
委托书格式
2014/08/01 职场文书
安全月宣传标语
2014/10/07 职场文书
2014年办公室主任工作总结
2014/11/12 职场文书
结婚幸福感言
2015/08/01 职场文书
干部考核工作总结
2015/08/12 职场文书
大学生村官驻村工作心得体会
2016/01/23 职场文书