php数据结构与算法(PHP描述) 快速排序 quick sort


Posted in PHP onJune 21, 2012
<?php 
/** 
* 快速排序 quick sort 
* 
**/ function sort_quick($arrData) { 
if(empty($arrData) || !is_array($arrData)) return false; 
$flag = $arrData[0]; 
$len = count($arrData) - 1; 
if($len == 0) return $arrData; // 如果只有一个数据的数组直接返回 
$arrLeft = array(); 
$arrRight = array(); 
$len_l = 0; 
$len_r = 0; 
for($i = 1; $i <= $len;$i++) { 
if($arrData[$i] < $flag) { 
$arrLeft[$len_l] = $arrData[$i]; // 小于的放左边 
$len_l++; 
} else { 
$arrRight[$len_r] = $arrData[$i]; // 大于等于的放右边 
$len_r++; 
} 
} 
// 合并数组 
$arrResult = array(); 
if($len_l) { 
$arrLeft = sort_quick($arrLeft); 
for($i = 0;$i <= $len_l - 1; $i++ ) { 
$arrResult[$i] = $arrLeft[$i]; 
} 
} 
$arrResult[$len_l] = $flag; 
$len_l++; 
if($len_r) { 
$arrRight = sort_quick($arrRight); 
for($i = 0;$i <= $len_r - 1; $i++ ) { 
$arrResult[$len_l] = $arrRight[$i]; 
$len_l++; 
} 
} 
echo "== ",$flag," ==========================================<br/>"; 
echo "data : ",print_r($arrData),"<br/>"; 
echo "filter left: ",print_r($arrLeft),"<br/>"; 
echo "filter right: ",print_r($arrRight),"<br/>"; 
echo "return : ",print_r($arrResult),"<br/>"; 
return $arrResult; 
} 
//$list = array(4,3,2,1,5,7,3,7); 
$list = array(4,51,6,73,2,5,9,33,50,3,4,6,1,4,67); 
$list = sort_quick($list); 
echo "<pre>";print_r($list);
PHP 相关文章推荐
Google Voice 短信发送接口PHP开源版(2010.5更新)
Jul 22 PHP
PHP中将字符串转化为整数(int) intval() printf() 性能测试
Mar 20 PHP
PHP ? EasyUI DataGrid 资料取的方式介绍
Nov 07 PHP
在smarty中调用php内置函数的方法
Feb 07 PHP
php笔记之:数据类型与常量的使用分析
May 14 PHP
php+js实现图片的上传、裁剪、预览、提交示例
Aug 27 PHP
php计算两个日期时间差(返回年、月、日)
Jun 19 PHP
如何离线执行php任务
Feb 21 PHP
PHP+ajax实现二级联动菜单功能示例
Aug 10 PHP
PHP智能识别收货地址信息实例
Jan 05 PHP
Laravel定时任务的每秒执行代码
Oct 22 PHP
PHP 文件写入和读取操作实例详解【必看篇】
Nov 04 PHP
SESSION信息保存在哪个文件目录下以及能够用来保存什么类型的数据
Jun 17 #PHP
PHP Warning: PHP Startup: Unable to load dynamic library \ D:/php5/ext/php_mysqli.dll\
Jun 17 #PHP
php后退一页表单内容保存实现方法
Jun 17 #PHP
php中使用接口实现工厂设计模式的代码
Jun 17 #PHP
php中jQuery插件autocomplate的简单使用笔记
Jun 14 #PHP
PHP的加密方式及原理
Jun 14 #PHP
php面向对象 字段的声明与使用
Jun 14 #PHP
You might like
PHP的substr_replace将指定两位置之间的字符替换为*号
2011/05/04 PHP
php模拟ping命令(php exec函数的使用方法)
2013/10/25 PHP
php实现基于微信公众平台开发SDK(demo)扩展的方法
2014/12/22 PHP
详细解读php的命名空间(一)
2018/02/21 PHP
js静态方法与实例方法分析
2011/07/04 Javascript
JavaScript的strict模式与with关键字介绍
2014/02/08 Javascript
简单方法判断JavaScript对象为null或者属性为空
2014/09/26 Javascript
node.js中的fs.realpathSync方法使用说明
2014/12/16 Javascript
JavaScript实现鼠标滑过图片变换效果的方法
2015/04/16 Javascript
jquery分析文本里url或邮件地址为真实链接的方法
2015/06/20 Javascript
JavaScript实现时间倒计时跳转(推荐)
2016/06/28 Javascript
js检测离开或刷新页面时表单数据是否更改的方法
2016/08/02 Javascript
AngularJS 单元测试(二)详解
2016/09/21 Javascript
详解js树形控件—zTree使用总结
2016/12/28 Javascript
使用vue实现点击按钮滑出面板的实现代码
2017/01/10 Javascript
从零开始学习Node.js系列教程四:多页面实现的数学运算示例
2017/04/13 Javascript
Vue2.0实现购物车功能
2017/06/05 Javascript
jquery应用实例分享_实现手风琴特效
2018/02/01 jQuery
详解vue 不同环境配置不同的打包命令
2019/04/07 Javascript
详解Vue 数据更新了但页面没有更新的 7 种情况汇总及延伸总结
2020/05/28 Javascript
python中利用队列asyncio.Queue进行通讯详解
2017/09/10 Python
python实现移位加密和解密
2019/03/22 Python
python 实现字符串下标的输出功能
2020/02/13 Python
详细分析Python collections工具库
2020/07/16 Python
详解tensorflow之过拟合问题实战
2020/11/01 Python
CSS3制作炫酷的下拉菜单及弹起式选单的实例分享
2016/05/17 HTML / CSS
利用css3如何设置没有上下边的列表间隔线
2017/07/03 HTML / CSS
法国面料和小百货在线商店:Mondial Tissus
2019/03/23 全球购物
德国自然时尚和有机产品购物网站:Waschbär
2019/05/29 全球购物
大一期末自我鉴定
2013/12/13 职场文书
大课间活动制度
2014/01/18 职场文书
《冬阳童年骆驼队》教学反思
2014/04/15 职场文书
警察群众路线对照检查材料思想汇报
2014/10/01 职场文书
python urllib库的使用详解
2021/04/13 Python
JPA如何使用entityManager执行SQL并指定返回类型
2021/06/15 Java/Android
利用Redis实现点赞功能的示例代码
2022/06/28 Redis