php排序算法(冒泡排序,快速排序)


Posted in PHP onOctober 09, 2012

冒泡排序实现原理

① 首先将所有待排序的数字放入工作列表中。
② 从列表的第一个数字到倒数第二个数字,逐个检查:若某一位上的数字大于他的下一位,则将它与它的下一位交换。

③ 重复步骤②,直至再也不能交换。

代码实现

<?php
 function bubbingSort(array $array)
 {
     for($i=0, $len=count($array)-1; $i<$len; ++$i)
     {
         for($j=$len; $j>$i; --$j)
         {
             if($array[$j] < $array[$j-1])
             {
                 $temp = $array[$j];
                 $array[$j] = $array[$j-1];
                 $array[$j-1] = $temp;
             }
         }
     }
     return $array;
 } print '<pre>';
 print_r(bubbingSort(array(1,4,22,5,7,6,9)));
 print '</pre>';

快速排序实现原理
采用分治的思想:先保证列表的前半部分都小于后半部分,然后分别对前半部分和后半部分排序,这样整个列表就有序了。

代码实现

function quickSort(array $array)
 {
     $len = count($array);
     if($len <= 1)
     {
         return $array;
     }
     $key = $array[0];
     $left = array();
     $right = array();
     for($i=1; $i<$len; ++$i)
     {
         if($array[$i] < $key)
         {
             $left[] = $array[$i];
         }
         else
         {
             $right[] = $array[$i];
         }
     }
     $left = quickSort($left);
     $right = quickSort($right);
     return array_merge($left, array($key), $right);
 } print '<pre>';
 print_r(quickSort(array(1,4,22,5,7,6,9)));
 print '</pre>';
PHP 相关文章推荐
PHP 变量的定义方法
Jan 26 PHP
php is_file 判断给定文件名是否为一个正常的文件
May 10 PHP
理解php Hash函数,增强密码安全
Feb 25 PHP
浅析PHP页面局部刷新功能的实现小结
Jun 21 PHP
php实现保存submit内容之后禁止刷新
Mar 19 PHP
基于PHP代码实现中奖概率算法可用于刮刮卡、大转盘等抽奖算法
Dec 20 PHP
PHP书写格式详解(必看)
May 23 PHP
PHP实现上传图片到 zimg 服务器
Oct 19 PHP
PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)
Dec 14 PHP
Laravel中前端js上传图片到七牛云的示例代码
Sep 04 PHP
ThinkPHP框架使用redirect实现页面重定向的方法实例分析
Apr 12 PHP
PHP5.6读写excel表格文件操作示例
Feb 26 PHP
php全排列递归算法代码
Oct 09 #PHP
php列出一个目录下的所有文件的代码
Oct 09 #PHP
解析百度搜索结果link?url=参数分析 (全)
Oct 09 #PHP
仿Aspnetpager的一个PHP分页类代码 附源码下载
Oct 08 #PHP
php随机输出名人名言的代码
Oct 07 #PHP
PHP面向对象学习笔记之二 生成对象的设计模式
Oct 06 #PHP
PHP面向对象学习笔记之一 基础概念
Oct 06 #PHP
You might like
php删除与复制文件夹及其文件夹下所有文件的实现代码
2013/01/23 PHP
PHP基于数组实现的分页函数实例
2014/08/20 PHP
php制作的简单验证码识别代码
2016/01/26 PHP
PHP各种常见经典算法总结【排序、查找、翻转等】
2019/08/05 PHP
学习YUI.Ext第五日--做拖放Darg&amp;Drop
2007/03/10 Javascript
js判断IE6/IE7/FF的代码[XMLHttpRequest]
2011/02/16 Javascript
jquery $(&quot;#variable&quot;) 循环改变variable的值示例
2014/02/23 Javascript
js函数与php函数的区别实例浅析
2015/01/12 Javascript
jQuery插件windowScroll实现单屏滚动特效
2015/07/14 Javascript
js无法获取到html标签的属性的解决方法
2016/07/26 Javascript
jquery 中toggle的2种用法详解(推荐)
2016/09/02 Javascript
vue 中自定义指令改变data中的值
2017/06/02 Javascript
node.js中http模块和url模块的简单介绍
2017/10/06 Javascript
AngularJS实现表单元素值绑定操作示例
2017/10/11 Javascript
vue中倒计时组件的实例代码
2018/07/06 Javascript
vue+springboot实现项目的CORS跨域请求
2018/09/05 Javascript
tracking.js页面人脸识别插件使用方法
2020/04/16 Javascript
vue实现拖拽效果
2019/12/23 Javascript
如何在JavaScript中使用localStorage详情
2021/02/04 Javascript
[07:08]2014DOTA2西雅图国际邀请赛 小组赛7月11日TOPPLAY
2014/07/11 DOTA
[03:49]DOTA2 2015国际邀请赛中国区预选赛第二日现场百态
2015/05/27 DOTA
selenium python浏览器多窗口处理代码示例
2018/01/15 Python
tensorflow学习教程之文本分类详析
2018/08/07 Python
浅谈JupyterNotebook导出pdf解决中文的问题
2020/04/22 Python
Python web如何在IIS发布应用过程解析
2020/05/27 Python
全球速卖通西班牙站:AliExpress西班牙
2017/10/30 全球购物
行政经理岗位职责
2013/11/09 职场文书
探亲邀请信范文
2014/01/30 职场文书
建筑安全责任书范本
2014/07/24 职场文书
领导班子党的群众路线教育实践活动对照检查材料
2014/09/25 职场文书
乡镇党员干部群众路线对照检查材料思想汇报
2014/09/28 职场文书
2015年建筑工作总结报告
2015/05/04 职场文书
同学聚会致辞集锦
2015/07/28 职场文书
2016春季幼儿园大班开学寄语
2015/12/03 职场文书
SpringBoot2零基础到精通之异常处理与web原生组件注入
2022/03/22 Java/Android
Django框架中视图的用法
2022/06/10 Python