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中文本数据翻页(留言本翻页)
Oct 09 PHP
PHP中查询SQL Server或Sybase时TEXT字段被截断的解决方法
Mar 10 PHP
PHP 函数学习简单小结
Jul 08 PHP
PHP使用feof()函数读文件的方法
Nov 07 PHP
php实现将字符串按照指定距离进行分割的方法
Mar 14 PHP
PHP 微信支付类 demo
Nov 30 PHP
yii数据库的查询方法
Dec 28 PHP
PHP实现数据分页显示的简单实例
May 26 PHP
php实现评论回复删除功能
May 23 PHP
PHP实现基于图的深度优先遍历输出1,2,3...n的全排列功能
Nov 10 PHP
PHP APP微信提现接口代码
Sep 30 PHP
ThinkPHP 框架实现的读取excel导入数据库操作示例
Apr 14 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如何透过ODBC来存取数据库
2006/10/09 PHP
解决了Ajax、MySQL 和 Zend Framework 的乱码问题
2009/03/03 PHP
深入分析php之面向对象
2013/05/15 PHP
使用PHP备份MySQL和网站发送到邮箱实例代码
2013/11/28 PHP
如何使用纯PHP实现定时器任务(Timer)
2015/07/31 PHP
ThinkPHP框架里隐藏index.php
2016/04/12 PHP
php实现压缩合并js的方法【附demo源码下载】
2016/09/22 PHP
JavaScript 中的replace方法说明
2007/04/13 Javascript
javascript中用星号表示预录入内容的实现代码
2011/01/08 Javascript
检测input每次的输入是否合法遇到汉字输入就有问题
2012/05/23 Javascript
防止浏览器记住用户名及密码的简单实用方法
2013/04/22 Javascript
JavaScript 实现简单的倒计时弹窗DEMO附图
2014/03/05 Javascript
JS实现的数组全排列输出算法
2015/03/19 Javascript
深入理解Javascript中的自执行匿名函数
2016/06/03 Javascript
jq给页面添加覆盖层遮罩的实例
2017/02/16 Javascript
JavaScript中 DOM操作方法小结
2017/04/25 Javascript
d3.js实现自定义多y轴折线图的示例代码
2018/05/30 Javascript
Vue头像处理方案小结
2018/07/26 Javascript
Koa从零搭建到Api实现项目的搭建方法
2019/07/30 Javascript
[03:11]不朽宝藏三外观展示
2020/09/18 DOTA
python删除指定类型(或非指定)的文件实例详解
2015/07/06 Python
Python脚本实现12306火车票查询系统
2016/09/30 Python
Python callable()函数用法实例分析
2018/03/17 Python
浅析Python装饰器以及装饰器模式
2018/05/28 Python
使用Python横向合并excel文件的实例
2018/12/11 Python
python实现文本界面网络聊天室
2018/12/12 Python
python读取图片任意范围区域
2019/01/23 Python
pip指定python位置安装软件包的方法
2019/07/12 Python
护理专科毕业推荐信
2013/11/10 职场文书
“向国旗敬礼”活动策划方案(4篇)
2014/09/27 职场文书
师德师风自查材料
2014/10/14 职场文书
导游词之襄阳古城
2019/09/27 职场文书
创业计划书之酒厂
2019/10/14 职场文书
导游词之沈阳植物园
2019/11/30 职场文书
python实现网络五子棋
2021/04/11 Python
MySQL下载安装配置详细教程 附下载资源
2022/09/23 MySQL