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 相关文章推荐
配置Apache2.2+PHP5+CakePHP1.2+MySQL5运行环境
Apr 25 PHP
PHP mcrypt可逆加密算法分析
Jul 19 PHP
iis下php mail函数的sendmail配置方法(官方推荐)
Apr 25 PHP
解析dedecms空间迁移步骤详解
May 15 PHP
2014年10个最佳的PHP图像操作库
Jul 14 PHP
CodeIgniter采用config控制的多语言实现根据浏览器语言自动转换功能
Jul 18 PHP
一个php生成16位随机数的代码(两种方法)
Sep 16 PHP
Symfony页面的基本创建实例详解
Jan 26 PHP
Mac系统下使用brew搭建PHP(LNMP/LAMP)开发环境
Mar 03 PHP
PHP7标量类型declare用法实例分析
Sep 26 PHP
PHP树形结构tree类用法示例
Feb 01 PHP
php设计模式之观察者模式实例详解【星际争霸游戏案例】
Mar 30 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 抓取新浪读书频道的小说并生成txt电子书的代码
2009/12/18 PHP
开源php中文分词系统SCWS安装和使用实例
2014/04/11 PHP
Yii入门教程之目录结构、入口文件及路由设置
2014/11/25 PHP
php简单防盗链实现方法
2015/07/29 PHP
JavaScript中的prototype使用说明
2010/04/13 Javascript
js实现全屏漂浮广告移入光标停止移动
2013/12/02 Javascript
javascript里绝对用的上的字符分割函数总结
2014/07/31 Javascript
常用的jQuery前端技巧收集
2014/12/24 Javascript
详解javascript数组去重问题
2015/11/06 Javascript
基于JavaScript操作DOM常用的API小结
2015/12/01 Javascript
js和jquery分别验证单选框、复选框、下拉框
2015/12/17 Javascript
javascript正则表达式总结
2016/02/29 Javascript
php基于redis处理session的方法
2016/03/14 Javascript
在Js页面通过POST传递参数跳转到新页面详解
2017/08/25 Javascript
react-router browserHistory刷新页面404问题解决方法
2017/12/29 Javascript
react redux入门示例
2018/04/19 Javascript
JavaScript设计模式之模板方法模式原理与用法示例
2018/08/07 Javascript
在vue中使用echarts图表实例代码详解
2018/10/22 Javascript
Vue.extend实现挂载到实例上的方法
2019/05/01 Javascript
JavaScript 变量,数据类型基础实例详解【变量、字符串、数组、对象等】
2020/01/04 Javascript
vue 子组件watch监听不到prop的解决
2020/08/09 Javascript
python下如何查询CS反恐精英的服务器信息
2017/01/17 Python
Python利用递归和walk()遍历目录文件的方法示例
2017/07/14 Python
Python 快速实现CLI 应用程序的脚手架
2017/12/05 Python
Python模块搜索路径代码详解
2018/01/29 Python
django数据关系一对多、多对多模型、自关联的建立
2019/07/24 Python
解决tensorflow打印tensor有省略号的问题
2020/02/04 Python
pytorch实现查看当前学习率
2020/06/24 Python
工作中个人的自我评价
2013/12/31 职场文书
四年大学自我鉴定
2014/02/17 职场文书
美术兴趣小组活动总结
2014/07/07 职场文书
党的群众路线个人对照检查材料
2014/09/23 职场文书
2015年幼儿园保育员工作总结
2015/04/23 职场文书
写给消防战士们的一封慰问信
2019/10/07 职场文书
Python机器学习算法之决策树算法的实现与优缺点
2021/05/13 Python
各国货币符号大全
2022/02/17 杂记