又一个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执行速度全攻略(下)
Oct 09 PHP
php 图像函数大举例(非原创)
Jun 20 PHP
php下目前为目最全的CURL中文说明
Aug 01 PHP
php 去除html标记--strip_tags与htmlspecialchars的区别详解
Jun 26 PHP
php将url地址转化为完整的a标签链接代码(php为url地址添加a标签)
Jan 17 PHP
PHP提交表单失败后如何保留已经填写的信息
Jun 20 PHP
destoon之一键登录设置
Jun 21 PHP
PHP实现把文本中的URL转换为链接的auolink()函数分享
Jul 29 PHP
PHP 常用的header头部定义汇总
Jun 19 PHP
php实现给一张图片加上水印效果
Jan 02 PHP
Symfony学习十分钟入门经典教程
Feb 03 PHP
php下载文件,添加响应头的简单实例
Sep 22 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函数解决SQL injection
2006/12/09 PHP
浅析PHP程序设计中的MVC编程思想
2014/07/28 PHP
PHP的PDO常用类库实例分析
2016/04/07 PHP
PHP重置数组为连续数字索引的几种方式总结
2018/03/12 PHP
javascript concat数组累加 示例
2009/09/03 Javascript
半角全角相互转换的js函数
2009/10/16 Javascript
基于jquery的web页面日期格式化插件
2011/11/15 Javascript
jquery实现商品拖动选择效果代码(自写)
2013/05/28 Javascript
JS去除字符串两端空格的简单实例
2013/12/27 Javascript
浅析jQuery(function(){})与(function(){})(jQuery)之间的区别
2014/01/09 Javascript
IE、FF浏览器下修改标签透明度
2014/01/28 Javascript
node.js中的fs.stat方法使用说明
2014/12/16 Javascript
jQuery实现字符串按指定长度加入特定内容的方法
2015/03/11 Javascript
浅析javascript的return语句
2015/12/15 Javascript
动态更新highcharts数据的实现方法
2016/05/28 Javascript
yarn与npm的命令行小结
2016/10/20 Javascript
js提示框替代系统alert,自动关闭alert对话框的实现方法
2016/11/07 Javascript
详解SPA中前端路由基本原理与实现方式
2018/09/12 Javascript
基于JavaScript实现每日签到打卡轨迹功能
2018/11/29 Javascript
jquery多级树形下拉菜单的实例代码
2019/07/09 jQuery
微信小程序如何播放腾讯视频的实现
2019/09/20 Javascript
node.js如何根据URL返回指定的图片详解
2020/10/21 Javascript
Python内置函数的用法实例教程
2014/09/08 Python
python使用urllib2实现发送带cookie的请求
2015/04/28 Python
Python中音频处理库pydub的使用教程
2017/06/07 Python
django用户登录和注销的实现方法
2018/07/16 Python
numpy库与pandas库axis=0,axis= 1轴的用法详解
2019/05/27 Python
python分布式编程实现过程解析
2019/11/08 Python
Python开发之pip安装及使用方法详解
2020/02/21 Python
python 读取.nii格式图像实例
2020/07/01 Python
美国休闲服装品牌:J.Crew Factory
2017/03/04 全球购物
在宿舍喝酒的检讨书
2014/09/28 职场文书
法院四风对照检查材料思想汇报
2014/10/06 职场文书
社区重阳节活动总结
2015/03/24 职场文书
Pandas数据结构之Series的使用
2022/03/31 Python
Android RecyclerView实现九宫格效果
2022/06/28 Java/Android