又一个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 相关文章推荐
wordpress之wp-settings.php
Aug 17 PHP
php Http_Template_IT类库进行模板替换
Mar 19 PHP
php UTF8 文件的签名问题
Oct 30 PHP
php循环语句 for()与foreach()用法区别介绍
Sep 05 PHP
限制ckeditor上传图片文件大小的方法
Nov 15 PHP
PHP Session机制简介及用法
Aug 19 PHP
PHP保存带BOM文件的方法
Feb 12 PHP
通过chrome浏览器控制台(Console)进行PHP Debug的方法
Oct 19 PHP
PHP正则匹配反斜杠'\'和美元'$'的方法
Feb 08 PHP
完美解决thinkphp唯一索引重复时出错的问题
Mar 31 PHP
php输出反斜杠的实例方法
Sep 19 PHP
Laravel第三方包报class not found的解决方法
Oct 13 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
destoon文章模块调用企业会员资料的方法
2014/08/22 PHP
PHP stream_context_create()函数的使用示例
2015/05/12 PHP
php运行报错Call to undefined function curl_init()的最新解决方法
2016/11/20 PHP
mongodb和php的用法详解
2019/03/25 PHP
围观tangram js库
2010/12/28 Javascript
document.getElementById介绍
2011/09/13 Javascript
通过location.replace禁止浏览器后退防止重复提交
2014/09/04 Javascript
jquery+css实现动感的图片切换效果
2015/11/25 Javascript
jquery+ajax实现直接提交表单实例分析
2016/06/17 Javascript
详解JavaScript节流函数中的Throttle
2016/07/16 Javascript
图片加载完成再执行事件的实例
2017/11/16 Javascript
详解使用vuex进行菜单管理
2017/12/21 Javascript
Vue 项目代理设置的优化
2018/04/17 Javascript
详解React之key的使用和实践
2018/09/29 Javascript
微信小程序 扭蛋抽奖机css3动画实现详解
2019/07/19 Javascript
vue v-for 点击当前行,获取当前行数据及event当前事件对象的操作
2020/09/10 Javascript
[00:58]2016年国际邀请赛勇士令状宣传片
2016/06/01 DOTA
详解Python多线程Selenium跨浏览器测试
2017/04/01 Python
python实现协同过滤推荐算法完整代码示例
2017/12/15 Python
python OpenCV学习笔记直方图反向投影的实现
2018/02/07 Python
Win8.1下安装Python3.6提示0x80240017错误的解决方法
2018/07/31 Python
pyqt5实现按钮添加背景图片以及背景图片的切换方法
2019/06/13 Python
简单了解python变量的作用域
2019/07/30 Python
python爬虫 2019中国好声音评论爬取过程解析
2019/08/26 Python
Python matplotlib画图时图例说明(legend)放到图像外侧详解
2020/05/16 Python
python中的split、rsplit、splitlines用法说明
2020/10/23 Python
安装python依赖包psycopg2来调用postgresql的操作
2021/01/01 Python
乐高积木玩具美国官网:LEGO Shop US
2016/09/16 全球购物
就业推荐表自我鉴定
2014/03/21 职场文书
大学活动总结范文
2014/04/29 职场文书
小班评语大全
2014/05/04 职场文书
2015毕业生简历自我评价
2015/03/02 职场文书
出纳试用期自我评价
2015/03/10 职场文书
PHP新手指南
2021/04/01 PHP
口袋妖怪冰系十大最强精灵,几何雪花排第七,第六类似北极熊
2022/03/18 日漫
Python几种酷炫的进度条的方式
2022/04/11 Python