又一个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中利用XML技术构造远程服务(上)
Oct 09 PHP
PHP读取目录下所有文件的代码
Jan 07 PHP
PHP 5.0对象模型深度探索之对象复制
Mar 27 PHP
使用php来实现网络服务
Sep 15 PHP
php实现的遍历文件夹下所有文件,编辑删除
Jan 05 PHP
PHP关联数组的10个操作技巧
Jan 21 PHP
thinkPHP统计排行与分页显示功能示例
Dec 02 PHP
php 生成加密公钥加密私钥实例详解
Jun 16 PHP
PHP+Ajax实现的无刷新分页功能详解【附demo源码下载】
Jul 03 PHP
laravel5.4生成验证码的实例讲解
Aug 05 PHP
浅析PHP 中move_uploaded_file 上传中文文件名失败
Apr 17 PHP
PHP中abstract(抽象)、final(最终)和static(静态)原理与用法详解
Jun 05 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/05/29 PHP
PHPEXCEL 使用小记
2013/01/06 PHP
php多线程并发实现方法
2016/09/30 PHP
php+jQuery实现的三级导航栏下拉菜单显示效果
2017/08/10 PHP
Hutia 的 JS 代码集
2006/10/24 Javascript
网站繁简切换的JS遇到页面卡死的解决方法
2014/03/12 Javascript
react学习笔记之state以及setState的使用
2017/12/07 Javascript
webpack搭建vue 项目的步骤
2017/12/27 Javascript
vuex + axios 做登录验证 并且保存登录状态的实例
2018/09/16 Javascript
仿vue-cli搭建属于自己的脚手架的方法步骤
2019/04/17 Javascript
websocket4.0+typescript 实现热更新的方法
2019/08/14 Javascript
vue 获取url参数、get参数返回数组的操作
2020/11/12 Javascript
[02:59]DOTA2完美大师赛主赛事第三日精彩集锦
2017/11/25 DOTA
Python实现将一个正整数分解质因数的方法分析
2017/12/14 Python
Python get获取页面cookie代码实例
2018/09/12 Python
python os模块简单应用示例
2019/05/23 Python
Python 抓取微信公众号账号信息的方法
2019/06/14 Python
python add_argument()用法解析
2020/01/29 Python
Keras之自定义损失(loss)函数用法说明
2020/06/10 Python
Python 创建TCP服务器的方法
2020/07/28 Python
The Hut英国:英国领先的豪华在线百货商店
2019/07/26 全球购物
ANINE BING官方网站:奢华的衣橱基本款和时尚永恒的单品
2019/11/26 全球购物
Java中的基本数据类型所占存储空间大小固定的吗
2012/02/15 面试题
商场端午节活动方案
2014/01/29 职场文书
上课迟到检讨书
2014/02/19 职场文书
毕业生自荐信格式
2014/03/07 职场文书
求职信格式要求
2014/05/23 职场文书
工程学毕业生自荐信
2014/06/14 职场文书
电子工程求职信
2014/07/17 职场文书
财政局党的群众路线教育实践活动剖析材料
2014/10/13 职场文书
2015年师德表现自我评价
2015/03/05 职场文书
2015年实习单位评语
2015/03/25 职场文书
《秋天的雨》教学反思
2016/02/19 职场文书
python flask开发的简单基金查询工具
2021/06/02 Python
动画「半妖的夜叉姬」新BD特典图公开
2022/03/22 日漫
windows server2008 开启端口的实现方法
2022/06/25 Servers