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 相关文章推荐
example1.php
Oct 09 PHP
php数据库抽象层 PDO
May 07 PHP
php中全局变量global的使用演示代码
May 18 PHP
PHP+jQuery 注册模块的改进(三):更新到Smarty3.1
Oct 14 PHP
PHP用mb_string函数库处理与windows相关中文字符及Win环境下开启PHP Mb_String方法
Nov 11 PHP
PHP使用fopen与file_get_contents读取文件实例分享
Mar 04 PHP
再谈PHP中单双引号的区别详解
Jun 12 PHP
PHP微信开发之根据用户回复关键词\位置返回附近信息
Jun 24 PHP
thinkphp3.2实现在线留言提交验证码功能
Jul 19 PHP
thinkPHP框架实现的无限回复评论功能示例
Jun 09 PHP
PHP+redis实现微博的推模型案例分析
Jul 10 PHP
PHP7原生MySQL数据库操作实现代码
Jul 03 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
实现了一个PHP5的getter/setter基类的代码
2007/02/25 PHP
header中Content-Disposition的作用与使用方法
2012/06/13 PHP
thinkphp 多表 事务详解
2013/06/17 PHP
php读取出一个文件夹及其子文件夹下所有文件的方法示例
2017/06/15 PHP
javascript编程起步(第五课)
2007/02/27 Javascript
JavaScript编程中容易出BUG的几点小知识
2015/01/31 Javascript
微信小程序  modal弹框组件详解
2016/10/27 Javascript
微信小程序开发(二)图片上传+服务端接收详解
2017/01/11 Javascript
JS实现直接运行html代码的方法
2017/03/13 Javascript
vue+vuex+axio从后台获取数据存入vuex实现组件之间共享数据
2017/04/22 Javascript
Angular搜索 过滤 批量删除 添加 表单验证功能集锦(实例代码)
2017/10/25 Javascript
JS实现返回上一页并刷新页面的方法分析
2019/07/16 Javascript
vue抽出组件并传值实例
2020/07/31 Javascript
详解微信小程序(Taro)手动埋点和自动埋点的实现
2021/03/02 Javascript
[02:51]2018年度DOTA2最佳中单位选手-完美盛典
2018/12/17 DOTA
用Python编写一个国际象棋AI程序
2014/11/28 Python
Python实现备份MySQL数据库的方法示例
2018/01/11 Python
Django REST framework视图的用法
2019/01/16 Python
Python编写一个验证码图片数据标注GUI程序附源码
2019/12/09 Python
python为什么会环境变量设置不成功
2020/06/23 Python
使用Python中tkinter库简单gui界面制作及打包成exe的操作方法(二)
2020/10/12 Python
Python通过字典映射函数实现switch
2020/11/06 Python
Html5移动端网页端适配(js+rem)
2021/02/03 HTML / CSS
夜大自我鉴定
2013/10/31 职场文书
求职面试个人自我评价
2014/02/28 职场文书
教学改革实施方案
2014/03/31 职场文书
火锅店的活动方案
2014/08/15 职场文书
公司行政专员岗位职责
2014/08/24 职场文书
2014年教师批评与自我批评思想汇报
2014/09/20 职场文书
2014年保险业务员工作总结
2014/12/23 职场文书
节水倡议书
2015/01/19 职场文书
给老婆的检讨书
2015/01/27 职场文书
开票员岗位职责
2015/02/12 职场文书
vue首次渲染全过程
2021/04/21 Vue.js
详解分布式系统中如何用python实现Paxos
2021/05/18 Python
使用pycharm运行flask应用程序的详细教程
2021/06/07 Python