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 相关文章推荐
如何使用PHP获取网络上文件
Oct 09 PHP
php 文本文件的读取效率
Feb 10 PHP
php的webservice的wsdl的XML无法显示问题的解决方法
Mar 11 PHP
从零开始学YII2框架(一)通过Composer安装Yii2框架
Aug 20 PHP
两千行代码的PHP学习笔记汇总
Oct 05 PHP
php将字符串转换成16进制的方法
Mar 17 PHP
PHP限制HTML内容中图片必须是本站的方法
Jun 16 PHP
分享PHP函数实现数字与文字分页代码
Jul 28 PHP
PHP中让json_encode不自动转义斜杠“/”的方法
Feb 28 PHP
PHP函数按引用传递参数及函数可选参数用法示例
Jun 04 PHP
php根据命令行参数生成配置文件详解
Mar 15 PHP
php的instanceof和判断闭包Closure操作示例
Jan 26 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
上海牌131型七灯四波段四喇叭一级收音机
2021/03/02 无线电
php判断字符串在另一个字符串位置的方法
2014/02/27 PHP
浅析application/x-www-form-urlencoded和multipart/form-data的区别
2014/06/22 PHP
PHP学习笔记(一):基本语法之标记、空白、和注释
2015/04/17 PHP
PHP数学运算与数据处理实例分析
2016/04/01 PHP
php实现根据身份证获取精准年龄
2020/02/26 PHP
慎用 somefunction.prototype 分析
2009/06/02 Javascript
jQuery下的几个你可能没用过的功能
2010/08/29 Javascript
Three.js源码阅读笔记(物体是如何组织的)
2012/12/27 Javascript
关于JavaScript命名空间的一些心得
2014/06/07 Javascript
jquery比较简洁的软键盘特效实现方法
2015/03/19 Javascript
Bootstrap树形控件使用方法详解
2016/01/27 Javascript
JavaScript仿商城实现图片广告轮播实例代码
2016/02/06 Javascript
javascript实现数字倒计时特效
2016/03/30 Javascript
微信小程序 Windows2008 R2服务器配置TLS1.2方法
2016/12/05 Javascript
浅谈js停止事件冒泡 阻止浏览器的默认行为(阻止超连接 #)
2017/02/08 Javascript
babel基本使用详解
2017/02/17 Javascript
BootStrap Validator 根据条件在JS中添加或移除校验操作
2017/10/12 Javascript
用React实现一个完整的TodoList的示例代码
2017/10/30 Javascript
nodejs+mongodb+vue前后台配置ueditor的示例代码
2018/01/02 NodeJs
vue2.0+SVG实现音乐播放圆形进度条组件
2019/09/21 Javascript
JavaScript实现Tab选项卡切换
2020/02/13 Javascript
解决vue动态下拉菜单 有数据未反应的问题
2020/08/06 Javascript
python中实现php的var_dump函数功能
2015/01/21 Python
Python使用matplotlib绘制动画的方法
2015/05/20 Python
python使用Geany编辑器配置方法
2020/02/21 Python
python解释器pycharm安装及环境变量配置教程图文详解
2020/02/26 Python
美国最好的葡萄酒网上商店:Wine Library
2019/11/02 全球购物
全球最大运动品牌的男装、女装和童装官方库存商:A&A Sports
2021/01/17 全球购物
进程的查看和调度分别使用什么命令
2015/03/25 面试题
记者岗位职责
2014/01/06 职场文书
《盲人摸象》教学反思
2014/02/16 职场文书
学校开学标语
2014/10/06 职场文书
《春酒》教学反思
2016/02/22 职场文书
同学会演讲稿
2019/04/02 职场文书
python析构函数用法及注意事项
2021/06/22 Python