又一个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 相关文章推荐
桌面中心(二)数据库写入
Oct 09 PHP
AJAX for PHP简单表数据查询实例
Jan 02 PHP
php.ini中的php-5.2.0配置指令详解
Mar 27 PHP
PHP中根据IP地址判断城市实现城市切换或跳转代码
Sep 04 PHP
php+highchats生成动态统计图
May 21 PHP
php中隐形字符65279(utf-8的BOM头)问题
Aug 16 PHP
基于linnux+phantomjs实现生成图片格式的网页快照
Apr 15 PHP
php二维码生成
Oct 19 PHP
php数组函数array_key_exists()小结
Dec 10 PHP
php 实现一个字符串加密解密的函数实例代码
Nov 01 PHP
php array_walk 对数组中的每个元素应用用户自定义函数详解
Nov 18 PHP
微信接口生成带参数的二维码
Jul 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
Ajax+PHP 边学边练 之二 实例
2009/11/24 PHP
PHP设计模式 注册表模式(多个类的注册)
2012/02/05 PHP
详解WordPress中用于更新和获取用户选项数据的PHP函数
2016/03/08 PHP
PHP基于pdo的数据库操作类【可支持mysql、sqlserver及oracle】
2018/05/21 PHP
点击广告后才能获得下载地址
2006/10/26 Javascript
js操作select控件的几种方法
2010/06/02 Javascript
JavaScript中变量提升 Hoisting
2012/07/03 Javascript
display和visibility的区别示例介绍
2014/02/26 Javascript
javascript对JSON数据排序的3个例子
2014/04/12 Javascript
js实现iframe框架取值的方法(兼容IE,firefox,chrome等)
2015/11/26 Javascript
Js+Ajax,Get和Post在使用上的区别小结
2016/06/08 Javascript
Angular.js中angular-ui-router的简单实践
2017/07/18 Javascript
vue 怎么创建组件及组件使用方法
2017/07/27 Javascript
vue axios 二次封装的示例代码
2017/12/08 Javascript
antd Upload 文件上传的示例代码
2018/12/14 Javascript
vue前后分离调起微信支付
2019/07/29 Javascript
layui监听select变化,以及设置radio选中的方法
2019/09/24 Javascript
微信小程序一周时间表功能实现
2019/10/17 Javascript
javascript实现商品图片放大镜
2019/11/28 Javascript
原生js实现购物车功能
2020/09/23 Javascript
[48:47]VGJ.S vs NB 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
[04:50]2019DOTA2高校联赛秋季赛四强集锦
2019/12/27 DOTA
Python自定义主从分布式架构实例分析
2016/09/19 Python
python实现外卖信息管理系统
2018/01/11 Python
Python3.6基于正则实现的计算器示例【无优化简单注释版】
2018/06/14 Python
django2用iframe标签完成网页内嵌播放b站视频功能
2018/06/20 Python
python pands实现execl转csv 并修改csv指定列的方法
2018/12/12 Python
django admin组件使用方法详解
2019/07/19 Python
Python实现栈和队列的简单操作方法示例
2019/11/29 Python
python线程信号量semaphore使用解析
2019/11/30 Python
tensorflow实现tensor中满足某一条件的数值取出组成新的tensor
2020/01/04 Python
在python3.64中安装pyinstaller库的方法步骤
2020/06/02 Python
python3排序的实例方法
2020/10/20 Python
面包店的创业计划书范文
2014/01/16 职场文书
红色经典电影观后感
2015/06/18 职场文书
python批量创建变量并赋值操作
2021/06/03 Python