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 相关文章推荐
source.php查看源文件
Dec 09 PHP
php date()日期时间函数详解
May 16 PHP
php去除重复字的实现代码
Sep 16 PHP
php变量范围介绍
Oct 15 PHP
zf框架db类的分页示例分享
Mar 14 PHP
ThinkPHP3.1之D方法实例详解
Jun 20 PHP
PHP中shuffle数组值随便排序函数用法
Nov 21 PHP
smarty内部日期函数html_select_date()用法实例分析
Jul 08 PHP
Symfony2框架创建项目与模板设置实例详解
Mar 17 PHP
浅谈PHP的反射机制
Dec 15 PHP
PHP PDOStatement::closeCursor讲解
Jan 30 PHP
Laravel 验证码认证学习记录小结
Dec 20 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 feof用来识别文件末尾字符的方法
2010/08/01 PHP
php获取服务器信息的实现代码
2013/02/04 PHP
php专用数组排序类ArraySortUtil用法实例
2015/04/03 PHP
PHP API接口必备之输出json格式数据示例代码
2017/06/27 PHP
javascript高亮效果的二种实现方法
2008/09/14 Javascript
关于ExtJS4.1:快捷键支持的问题
2013/04/24 Javascript
JavaScript控制各种浏览器全屏模式的方法、属性和事件介绍
2014/04/03 Javascript
JavaScript获得当前网页来源页面(即上一页)的方法
2015/04/03 Javascript
Javascript动态创建表格及删除行列的方法
2015/05/15 Javascript
js实现当前输入框高亮显示的方法
2015/08/19 Javascript
js父页面中使用子页面的方法
2016/01/09 Javascript
使用Sticky组件实现带sticky效果的tab导航和滚动导航的方法
2016/03/22 Javascript
JavaScript禁止复制与粘贴的实现代码
2016/05/16 Javascript
javascript的replace方法结合正则使用实例总结
2016/06/16 Javascript
Bootstrap CSS组件之面包屑导航(breadcrumb)
2016/12/17 Javascript
vue脚手架vue-cli的学习使用教程
2017/06/06 Javascript
Bootstrap3.3.7导航栏下拉菜单鼠标滑过展开效果
2017/10/31 Javascript
简易Vue评论框架的实现(父组件的实现)
2018/01/08 Javascript
如何在基于vue-cli的项目自定义打包环境
2018/11/10 Javascript
vue实现微信分享链接添加动态参数的方法
2019/04/29 Javascript
Vue中el-form标签中的自定义el-select下拉框标签功能
2020/04/20 Javascript
基于vue实现探探滑动组件功能
2020/05/29 Javascript
谈谈JavaScript中的函数
2020/09/08 Javascript
[46:40]VGJ.T vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
[01:20]DOTA2更新全新英雄 天涯墨客现已加入游戏
2018/08/25 DOTA
python3安装crypto出错及解决方法
2019/07/30 Python
Python 使用多属性来进行排序
2019/09/01 Python
pycharm 2020.2.4 pip install Flask 报错 Error:Non-zero exit code的问题
2020/12/04 Python
移动web模拟客户端实现多方框输入密码效果【附代码】
2016/03/25 HTML / CSS
澳大利亚最受欢迎的超级商场每日优惠:Catch
2020/11/17 全球购物
食品安全检查制度
2014/02/03 职场文书
公司请假条格式
2014/04/11 职场文书
员工年终自我评价
2014/09/14 职场文书
2014年护理部工作总结
2014/11/14 职场文书
2014年小学少先队工作总结
2014/12/18 职场文书
python源码剖析之PyObject详解
2021/05/18 Python