php实现快速排序法函数代码


Posted in PHP onAugust 27, 2012

代码1:

<?php 
function quicksort($str){ 
if(count($str)<=1) return $str;//如果个数不大于一,直接返回 
$key=$str[0];//取一个值,稍后用来比较; 
$left_arr=array(); 
$right_arr=array(); 
for($i=1;$i<count($str);$i++){//比$key大的放在右边,小的放在左边; 
if($str[$i]<=$key) 
$left_arr[]=$str[$i]; 
else 
$right_arr[]=$str[$i]; 
} 
$left_arr=quicksort($left_arr);//进行递归; 
$right_arr=quicksort($right_arr); 
return array_merge($left_arr,array($key),$right_arr);//将左中右的值合并成一个数组; 
}//以下是测试 
$str=array(5,3,8,2,5,9,7,2,1,4,0); 
print_r(quicksort($str)); 
?>

代码2:
/* @快速排序法*/ 
function quickSort($left,$right,$arr){ 
$l = $left; 
$r = $right; 
$pivot = $arr[($left+$right)/2]; 
$temp = 0; while($l<$r){ 
while($arr[$l]<$pivot){ 
$l++; 
} 
while($arr[$r]>$pivot){ 
$r--; 
} 
if($l>=$r) break; 
$temp = $arr[$l]; 
$arr[$l] = $arr[$r]; 
$arr[$r] = $temp; 
if($arr[$l]==$pivot) --$r; 
if($arr[$r]==$pivot) ++$l; 
} 
if($l==$r){ 
$l++; 
$r--; 
} 
if($left<$r){ 
quickSort($left, $r, $arr); 
}elseif($right>$l){ 
quickSort($l, $right, $arr); 
}else{ 
return $arr; 
} 
}
PHP 相关文章推荐
详细介绍PHP应用提速面面观
Oct 09 PHP
BBS(php &amp; mysql)完整版(八)
Oct 09 PHP
echo, print, printf 和 sprintf 区别
Dec 06 PHP
可定制的PHP缩略图生成程式(需要GD库支持)
Mar 06 PHP
php扩展ZF――Validate扩展
Jan 10 PHP
更改localhost为其他名字的方法
Feb 10 PHP
php网页标题中文乱码的有效解决方法
Mar 05 PHP
ThinkPHP做文字水印时提示call an undefined function exif_imagetype()解决方法
Oct 30 PHP
ThinkPHP通过AJAX返回JSON的两种实现方法
Dec 18 PHP
PHP如何通过AJAX方式实现登录功能
Nov 23 PHP
CI框架表单验证实例详解
Nov 21 PHP
PHP实现的redis主从数据库状态检测功能示例
Jul 20 PHP
php中3种方法统计字符串中每种字符的个数并排序
Aug 27 #PHP
简单的方法让你的后台登录更加安全(php中加session验证)
Aug 22 #PHP
PHP写的获取各搜索蜘蛛爬行记录代码
Aug 21 #PHP
php基础教程 php内置函数实例教程
Aug 21 #PHP
php+ajax做仿百度搜索下拉自动提示框(有实例)
Aug 21 #PHP
php计算十二星座的函数代码
Aug 21 #PHP
表格展示无限级分类(PHP版)
Aug 21 #PHP
You might like
批量去除PHP文件中bom的PHP代码
2012/03/13 PHP
php获取目录所有文件并将结果保存到数组(实例)
2013/10/25 PHP
PHP实现动态执行代码的方法
2016/03/25 PHP
总结PHP代码规范、流程规范、git规范
2018/06/18 PHP
PHP使用JpGraph绘制折线图操作示例【附源码下载】
2019/10/18 PHP
jQuery EasyUI API 中文文档 - Draggable 可拖拽
2011/09/29 Javascript
Jquery插件之打造自定义的select标签
2011/11/30 Javascript
js中split函数的使用方法说明
2013/12/26 Javascript
用js模拟struts2的多action调用示例
2014/05/19 Javascript
javascript为下拉列表动态添加数据项
2014/05/23 Javascript
JS动态插入并立即执行回调函数的方法
2016/04/21 Javascript
实例讲解JavaScript中call、apply、bind方法的异同
2016/09/13 Javascript
微信小程序 网络请求(GET请求)详解
2016/11/16 Javascript
js实现网页定位导航功能
2017/03/07 Javascript
vue编译打包本地查看index文件的方法
2018/02/23 Javascript
详解plotly.js 绘图库入门使用教程
2018/02/23 Javascript
在Vue 中使用Typescript的示例代码
2018/09/10 Javascript
React 项目迁移 Webpack Babel7的实现
2018/09/12 Javascript
基于vue-cli 路由 实现类似tab切换效果(vue 2.0)
2019/05/08 Javascript
vue 添加和编辑用同一个表单,el-form表单提交后清空表单数据操作
2020/08/03 Javascript
JavaScript本地储存:localStorage、sessionStorage、cookie的使用
2020/10/13 Javascript
巧用Python装饰器 免去调用父类构造函数的麻烦
2012/05/18 Python
python机器学习之神经网络(三)
2017/12/20 Python
Python logging管理不同级别log打印和存储实例
2018/01/19 Python
Linux下python制作名片示例
2018/07/20 Python
django框架自定义用户表操作示例
2018/08/07 Python
PyCharm在新窗口打开项目的方法
2019/01/17 Python
Python3.5运算符操作实例详解
2019/04/25 Python
python版百度语音识别功能
2019/07/09 Python
如何基于windows实现python定时爬虫
2020/05/01 Python
Python绘制组合图的示例
2020/09/18 Python
Python-openpyxl表格读取写入的案例详解
2020/11/02 Python
Myprotein瑞典官方网站:畅销欧洲英国运动营养品牌
2018/01/22 全球购物
阿迪达斯法国官方网站:adidas法国
2018/03/20 全球购物
英国运动风奢侈品购物网站:Maison De Fashion
2020/08/28 全球购物
MySQL的InnoDB存储引擎的数据页结构详解
2022/03/03 MySQL