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 相关文章推荐
PHP5/ZendEngine2的改进
Oct 09 PHP
PHP中的cookie
Nov 26 PHP
解决dede生成静态页和动态页转换的一些问题,及火车采集入库生成动态的办法
Mar 29 PHP
php 数学运算验证码实现代码
Oct 11 PHP
php类中private属性继承问题分析
Nov 01 PHP
利用phpexcel把excel导入数据库和数据库导出excel实现
Jan 09 PHP
php中有关字符串的4个函数substr、strrchr、strstr、ereg介绍和使用例子
Apr 24 PHP
php中字符集转换iconv函数使用总结
Oct 11 PHP
php集成环境xampp中apache无法启动问题解决方案
Nov 18 PHP
PHP图片处理之图片旋转和图片翻转实例
Nov 19 PHP
php用户注册信息验证正则表达式
Nov 12 PHP
PHP创建XML接口示例
Jul 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 自写函数代码 获取关键字 去超链接
2010/02/08 PHP
php下删除一篇文章生成的多个静态页面
2010/08/08 PHP
解决PHP超大文件下载,断点续传下载的方法详解
2013/06/06 PHP
双冒号 ::在PHP中的使用情况
2015/11/05 PHP
phpcms的分类名称和类别名称的调用
2017/01/05 PHP
JavaScript入门教程(5) js Screen屏幕对象
2009/01/31 Javascript
再次分享18个非常棒的jQuery表格插件
2011/04/10 Javascript
jquery(live)中File input的change方法只起一次作用的解决办法
2011/10/21 Javascript
javascript之典型高阶函数应用介绍
2013/01/10 Javascript
jQuery标签替换函数replaceWith()的使用例子
2014/08/28 Javascript
Javascript模块化编程详解
2014/12/01 Javascript
jQuery的图片滑块焦点图插件整理推荐
2014/12/07 Javascript
Node.js和MongoDB实现简单日志分析系统
2015/04/25 Javascript
javascript用函数实现对象的方法
2015/05/14 Javascript
JQ实现新浪游戏首页幻灯片
2015/07/29 Javascript
JQuery zClip插件实现复制页面内容到剪贴板
2015/11/02 Javascript
JavaScript判断图片是否已经加载完毕的方法汇总
2016/02/05 Javascript
jQuery增加和删除表格项目及实现表格项目排序的方法
2016/05/30 Javascript
RequireJS多页面应用实例分析
2016/06/29 Javascript
Highcharts学习之坐标轴
2016/08/02 Javascript
js 自带的sort() 方法全面了解
2016/08/16 Javascript
JS弹出窗口的运用与技巧大全
2016/11/01 Javascript
javascript中的后退和刷新实现方法
2016/11/10 Javascript
jQuery插件autocomplete使用详解
2017/02/04 Javascript
jQuery实现动态给table赋值的方法示例
2017/07/04 jQuery
使用webpack-dev-server处理跨域请求的方法
2018/04/18 Javascript
vue el-tree 默认展开第一个节点的实现代码
2020/05/15 Javascript
python学习之面向对象【入门初级篇】
2017/01/21 Python
python实现Adapter模式实例代码
2018/02/09 Python
Pycharm导入Python包,模块的图文教程
2018/06/13 Python
利用css3 translate完美实现表头固定效果
2017/02/28 HTML / CSS
amazeui 验证按钮扩展的实现
2020/08/21 HTML / CSS
MAC彩妆澳洲官网:M·A·C AU
2021/01/17 全球购物
医院护士的求职信范文
2013/12/26 职场文书
建筑工地宣传标语
2014/06/18 职场文书
《天净沙·秋思》教学反思三篇
2019/11/02 职场文书