又一个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数据库抽象层 PDO
May 07 PHP
解析PHP无限级分类方法及代码
Jun 21 PHP
PHP使用Pthread实现的多线程操作实例
Nov 14 PHP
详解WordPress中用于更新和获取用户选项数据的PHP函数
Mar 08 PHP
php array_values 返回数组的值实例详解
Nov 17 PHP
静态html文件执行php语句的方法(推荐)
Nov 21 PHP
Yii框架弹出框功能示例
Jan 07 PHP
php获取字符串前几位的实例(substr返回字符串的子串用法)
Mar 08 PHP
PHP如何实现阿里云短信sdk灵活应用在项目中的方法
Jun 14 PHP
laravel unique验证、确认密码confirmed验证以及密码修改验证的方法
Oct 16 PHP
PHP7新增函数
Mar 09 PHP
PHP基本语法
Mar 31 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来改写404错误页让你的页面更友好
2013/01/24 PHP
PHP转换文件夹下所有文件编码的实现代码
2013/06/06 PHP
php绘制一条弧线的方法
2015/01/24 PHP
zend框架实现支持sql server的操作方法
2016/12/08 PHP
php面向对象的用户登录身份验证
2017/06/08 PHP
php模仿qq空间或朋友圈发布动态、评论动态、回复评论、删除动态或评论的功能(中)
2017/06/11 PHP
PHP数组对象与Json转换操作实例分析
2019/10/22 PHP
laravel框架模型中非静态方法也能静态调用的原理分析
2019/11/23 PHP
关于js日期转化为毫秒数“节省20%的效率和和节省9个字符“问题
2012/03/01 Javascript
关于javascript event flow 的一个bug详解
2013/09/17 Javascript
当达到输入长度时表单自动切换焦点
2014/04/06 Javascript
js/jquery判断浏览器的方法小结
2014/09/02 Javascript
javascript连续赋值问题
2015/07/08 Javascript
js解决movebox移动问题
2016/03/29 Javascript
NodeJS远程代码执行
2016/08/28 NodeJs
jQuery插入节点和移动节点用法示例(insertAfter、insertBefore方法)
2016/09/08 Javascript
微信小程序之MaterialDesign--input组件详解
2017/02/15 Javascript
vue子组件使用自定义事件向父组件传递数据
2017/05/27 Javascript
AngularJS实时获取并显示密码的方法
2018/02/06 Javascript
基于jQuery ztree实现表格风格的树状结构
2018/08/31 jQuery
详解Vue之父子组件传值
2019/04/01 Javascript
JavaScript实现旋转木马轮播图
2020/03/16 Javascript
[44:04]OG vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
详解Python中的循环语句的用法
2015/04/09 Python
Selenium的使用详解
2018/10/19 Python
Python 如何实现访问者模式
2020/07/28 Python
Python 测试框架unittest和pytest的优劣
2020/09/26 Python
python 基于selenium实现鼠标拖拽功能
2020/12/24 Python
美国性感女装网站:bebe
2017/03/04 全球购物
一加手机美国官方网站:OnePlus美国
2019/09/19 全球购物
请说出几个常用的异常类
2013/01/08 面试题
5个HTML5的常用本地存储方式详解与介绍
2021/03/27 HTML / CSS
求职意向书范文
2014/04/01 职场文书
消防安全承诺书
2014/05/22 职场文书
2015年学校体育工作总结
2015/04/22 职场文书
发工资啦!教你用Python实现邮箱自动群发工资条
2021/05/10 Python