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 mysql数据库操作类
Jun 04 PHP
php strcmp使用说明
Apr 22 PHP
教你如何用php实现LOL数据远程获取
Jun 10 PHP
Symfony数据校验方法实例分析
Jan 26 PHP
php按单词截取字符串的方法
Apr 07 PHP
PHP关联数组实现根据元素值删除元素的方法
Jun 26 PHP
php猜单词游戏
Sep 29 PHP
PHP实现清除wordpress里恶意代码
Oct 21 PHP
UPUPW 更新 64 位 Apache 系列 PHP 7.0 正式版
Dec 08 PHP
Yii CDBCriteria常用方法实例小结
Jan 19 PHP
php redis实现文章发布系统(用户投票系统)
Mar 04 PHP
PHP session垃圾回收机制实例分析
Jun 28 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
一拳超人中怪人协会钦定! S级别最强四人!
2020/03/02 日漫
基于PHP创建Cookie数组的详解
2013/07/03 PHP
php中jpgraph类库的使用介绍
2013/08/08 PHP
使用php判断服务器是否支持Gzip压缩功能
2013/09/24 PHP
PHP+mysql防止SQL注入的方法小结
2019/04/27 PHP
在IE,Firefox,Safari,Chrome,Opera浏览器上调试javascript
2008/12/02 Javascript
javascript 函数调用的对象和方法
2010/07/01 Javascript
异步动态加载JS并运行(示例代码)
2013/12/13 Javascript
JavaScript实现的SHA-1加密算法完整实例
2016/02/02 Javascript
VueJS全面解析
2016/11/10 Javascript
详解vue服务端渲染(SSR)初探
2017/06/19 Javascript
vue项目中v-model父子组件通信的实现详解
2017/12/10 Javascript
基于vue-video-player自定义播放器的方法
2018/03/21 Javascript
浅谈Vue路由快照实现思路及其问题
2018/06/07 Javascript
微信小程序仿RadioGroup改变样式的处理方案
2018/07/13 Javascript
vuex实现的简单购物车功能示例
2019/02/13 Javascript
nodejs nedb 封装库与使用方法示例
2020/02/06 NodeJs
Windows平台Python连接sqlite3数据库的方法分析
2017/07/12 Python
python+selenium开发环境搭建图文教程
2017/08/11 Python
python中print()函数的“,”与java中System.out.print()函数中的“+”功能详解
2017/11/24 Python
浅谈python3.6的tkinter运行问题
2019/02/22 Python
python利用多种方式来统计词频(单词个数)
2019/05/27 Python
python 初始化一个定长的数组实例
2019/12/02 Python
浅谈python锁与死锁问题
2020/08/14 Python
python 如何使用find和find_all爬虫、找文本的实现
2020/10/16 Python
创业计划书中要认真思考的问题
2013/12/28 职场文书
总裁办公室主任职责
2014/01/02 职场文书
网上商城创业计划书范文
2014/01/31 职场文书
行政助理的岗位职责
2014/02/18 职场文书
暑期社会实践感言
2014/02/25 职场文书
领导班子自我剖析材料
2014/08/16 职场文书
公司放假通知范文
2015/04/14 职场文书
2015年“世界无车日”活动方案
2015/05/06 职场文书
教师节领导致辞
2015/07/29 职场文书
导游词之天津古文化街
2019/11/09 职场文书
一篇文章弄清楚Ajax请求的五个步骤
2022/03/17 Javascript