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 相关文章推荐
用户的详细注册和判断
Oct 09 PHP
php 获得汉字拼音首字母的函数
Aug 01 PHP
Windows7下PHP开发环境安装配置图文方法
May 20 PHP
PHP中输出转义JavaScript代码的实现代码
Apr 22 PHP
php利用cookie实现访问次数统计代码
May 19 PHP
php中将数组转成字符串并保存到数据库中的函数代码
Sep 29 PHP
php上传图片到指定位置路径保存到数据库的具体实现
Dec 30 PHP
PHP使用Alexa API获取网站的Alexa排名例子
Jun 12 PHP
PHP访问数据库集群的方法小结
Mar 14 PHP
浅析PHP7新功能及语法变化总结
Jun 17 PHP
Laravel如何同时连接多个数据库详解
Aug 13 PHP
分享几种好用的PHP自定义加密函数(可逆/不可逆)
Sep 15 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下尝试使用GraphicsMagick的缩略图功能
2011/01/01 PHP
Yii框架引用插件和ckeditor中body与P标签去除的方法
2017/01/19 PHP
PHP实现图片批量打包下载功能
2017/03/01 PHP
PHP中$GLOBALS与global的区别详解
2019/03/21 PHP
IE6下拉框图层问题探讨及解决
2014/01/03 Javascript
JS+CSS实现自动切换的网页滑动门菜单效果代码
2015/09/14 Javascript
简单学习JavaScript中的for语句循环结构
2015/11/10 Javascript
js简单网速测试方法完整实例
2015/12/15 Javascript
理解JavaScript表单的基础知识
2016/01/25 Javascript
基于JS代码实现当鼠标悬停表格上显示这一格的全部内容
2016/06/12 Javascript
Jquery动态列功能完整实例
2019/08/30 jQuery
Vue中实现回车键切换焦点的方法
2020/02/19 Javascript
使用 Github Actions 自动部署 Angular 应用到 Github Pages的方法
2020/07/20 Javascript
vue打开新窗口并实现传参的图文实例
2021/03/04 Vue.js
pycharm 使用心得(九)解决No Python interpreter selected的问题
2014/06/06 Python
Python中的一些陷阱与技巧小结
2015/07/10 Python
Python编程中time模块的一些关键用法解析
2016/01/19 Python
详解python之协程gevent模块
2018/06/14 Python
Window 64位下python3.6.2环境搭建图文教程
2018/09/19 Python
python ipset管理 增删白名单的方法
2019/01/14 Python
在macOS上搭建python环境的实现方法
2019/08/13 Python
基于python判断目录或者文件代码实例
2019/11/29 Python
python实点云分割k-means(sklearn)详解
2020/05/28 Python
Python 处理日期时间的Arrow库使用
2020/08/18 Python
css3的@media属性实现页面响应式布局示例代码
2014/02/10 HTML / CSS
世界上最大的售后摩托车零配件超市:J&P Cycles
2017/12/08 全球购物
什么是符号链接,什么是硬链接?符号链接与硬链接的区别是什么?
2014/01/19 面试题
大学四年职业生涯规划书范文
2014/01/02 职场文书
班主任工作经验材料
2014/02/02 职场文书
2014学校领导四风问题对照检查材料思想汇报
2014/09/22 职场文书
小学体育课教学反思
2016/02/16 职场文书
《梅花魂》教学反思
2016/02/18 职场文书
2016年禁毒宣传活动总结
2016/04/05 职场文书
python实现web邮箱扫描的示例(附源码)
2021/03/30 Python
mysql知识点整理
2021/04/05 MySQL
刚学完怎么用Python实现定时任务,转头就跑去撩妹!
2021/06/05 Python