又一个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调用Java对象的方法
Oct 09 PHP
PHP设置图片文件上传大小的具体实现方法
Oct 11 PHP
async和DOM Script文件加载比较
Jul 20 PHP
php switch语句多个值匹配同一代码块应用示例
Jul 29 PHP
php mb_substr()函数截取中文字符串应用示例
Jul 29 PHP
Linux中为php配置伪静态
Dec 17 PHP
PHP进程同步代码实例
Feb 12 PHP
PHP中异常处理的一些方法整理
Jul 03 PHP
php版微信数据统计接口用法示例
Oct 12 PHP
PHP实现支付宝即时到账功能
Dec 21 PHP
POST一个JSON格式的数据给Restful服务实例详解
Apr 07 PHP
PHP四种排序算法实现及效率分析【冒泡排序,插入排序,选择排序和快速排序】
Apr 27 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中一个控制字符串输出的函数
2006/10/09 PHP
PHP数字和字符串ID互转函数(类似优酷ID)
2014/06/30 PHP
PHP下使用mysqli的函数连接mysql出现warning: mysqli::real_connect(): (hy000/1040): ...
2016/02/14 PHP
Laravel5.5新特性之友好报错以及展示详解
2017/08/13 PHP
详谈PHP中public,private,protected,abstract等关键字的用法
2017/12/31 PHP
JS如何将UTC格式时间转本地格式
2013/09/04 Javascript
javascript实现input file上传图片预览效果
2015/12/31 Javascript
JS函数定义方式的区别介绍
2016/03/22 Javascript
js代码延迟一定时间后执行一个函数的实例
2017/02/15 Javascript
JS尾递归的实现方法及代码优化技巧
2019/01/19 Javascript
详解Vue 匿名、具名和作用域插槽的使用方法
2019/04/22 Javascript
详解微信小程序实现跑马灯效果(附完整代码)
2019/04/29 Javascript
详解vue-cli3开发Chrome插件实践
2019/05/29 Javascript
vue项目中监听手机物理返回键的实现
2020/01/18 Javascript
vue实现五子棋游戏
2020/05/28 Javascript
js+css实现扇形导航效果
2020/08/18 Javascript
k8s node节点重新加入master集群的实现
2021/02/22 Javascript
[04:44]DOTA2西游记战队视频彩蛋流出 师徒开黑巧遇林书豪
2016/08/03 DOTA
Python图算法实例分析
2016/08/13 Python
解决pycharm安装后代码区不能编辑的问题
2018/10/28 Python
Python read函数按字节(字符)读取文件的实现
2019/07/03 Python
python禁用键鼠与提权代码实例
2019/08/16 Python
原来我一直安装 Python 库的姿势都不对呀
2019/11/11 Python
解决python web项目意外关闭,但占用端口的问题
2019/12/17 Python
tensorflow实现tensor中满足某一条件的数值取出组成新的tensor
2020/01/04 Python
python自动脚本的pyautogui入门学习
2020/04/01 Python
python空元组在all中返回结果详解
2020/12/15 Python
在线购买廉价折扣书籍和小说:BookOutlet.com
2018/02/19 全球购物
Vans(范斯)新西兰官方网站:美国原创极限运动品牌
2020/09/19 全球购物
Delphi软件工程师试题
2013/01/29 面试题
办公室内勤工作职责
2013/12/11 职场文书
资助贫困学生倡议书
2014/05/16 职场文书
经济贸易系求职信
2014/08/04 职场文书
2015年加油站工作总结
2015/05/13 职场文书
导游词之介休绵山
2019/12/31 职场文书
Vue组件更新数据v-model不生效的解决
2022/04/02 Vue.js