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与ASP
Oct 09 PHP
在PHP中使用灵巧的体系结构
Oct 09 PHP
php获得文件扩展名三法
Nov 25 PHP
发款php蜘蛛统计插件只要有mysql就可用
Oct 12 PHP
PHP实现提取一个图像文件并在浏览器上显示的代码
Oct 06 PHP
解决php使用异步调用获取数据时出现(错误c00ce56e导致此项操作无法完成)
Jul 03 PHP
PHP伪静态Rewrite设置之APACHE篇
Jul 30 PHP
PHP图片处理之图片背景、画布操作
Nov 19 PHP
jquery获取多个checkbox的值异步提交给php的方法
Jun 24 PHP
简介WordPress中用于获取首页和站点链接的PHP函数
Dec 17 PHP
zend framework重定向方法小结
May 28 PHP
解决windows上php xdebug 无法调试的问题
Feb 19 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
使用gd库实现php服务端图片裁剪和生成缩略图功能分享
2013/12/25 PHP
php将12小时制转换成24小时制的方法
2015/03/31 PHP
Apache无法自动跳转却显示目录的解决方法
2020/11/30 PHP
PHP使用DOM和simplexml读取xml文档的方法示例
2017/02/08 PHP
详解提高使用Java反射的效率方法
2019/04/29 PHP
图片动画横条广告带上下滚动的JS代码
2013/10/25 Javascript
js实现文本框选中的方法
2015/05/26 Javascript
谈谈我对JavaScript原型和闭包系列理解(随手笔记8)
2015/12/24 Javascript
Bootstrap中的表单验证插件bootstrapValidator使用方法整理(推荐)
2016/06/21 Javascript
jQuery快速实现商品数量加减的方法
2017/02/06 Javascript
Node+Express+MongoDB实现登录注册功能实例
2017/04/23 Javascript
JavaScript实现打地鼠小游戏
2020/04/23 Javascript
vue.js的vue-cli脚手架中使用百度地图API的实例
2019/01/21 Javascript
详解基于electron制作一个node压缩图片的桌面应用
2019/01/29 Javascript
vue的列表交错过渡实现代码示例
2019/05/05 Javascript
vue使用自定义指令实现拖拽
2021/01/29 Javascript
关于layui导航栏不展示下拉列表的解决方法
2019/09/25 Javascript
Python入门篇之列表和元组
2014/10/17 Python
Django中模型Model添加JSON类型字段的方法
2015/06/17 Python
Python基于property实现类的特性操作示例
2018/06/15 Python
python爱心表白 每天都是浪漫七夕!
2018/08/18 Python
python如何生成各种随机分布图
2018/08/27 Python
Python推导式简单示例【列表推导式、字典推导式与集合推导式】
2018/12/04 Python
python对文件目录的操作方法实例总结
2019/06/24 Python
详解python中__name__的意义以及作用
2019/08/07 Python
Python叠加矩形框图层2种方法及效果
2020/06/18 Python
HTML5 Canvas实现图片缩放、翻转、颜色渐变的代码示例
2016/02/28 HTML / CSS
用canvas画心电图的示例代码
2018/09/10 HTML / CSS
Fox Racing官方网站:越野摩托车和山地自行车装备和服装
2019/12/23 全球购物
情侣吵架检讨书
2014/02/05 职场文书
法制宣传标语集锦
2014/06/25 职场文书
离婚协议书怎样才有法律效力
2014/10/10 职场文书
党的群众路线批评与自我批评发言稿
2014/10/16 职场文书
节约用水广告语60条
2019/11/14 职场文书
世界无敌的ICOM IC-R9500宽频接收机
2022/03/25 无线电
使用opencv-python如何打开USB或者笔记本前置摄像头
2022/06/21 Python