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 JSON 数据解析代码
May 26 PHP
简单的php文件上传(实例)
Oct 27 PHP
2个自定义的PHP in_array 函数,解决大量数据判断in_array的效率问题
Apr 08 PHP
浅谈PHP调用Webservice思路及源码分享
Jun 04 PHP
2014年最新推荐的10款 PHP 开发框架
Aug 01 PHP
两款万能的php分页类
Nov 12 PHP
PHP中加速、缓存扩展的区别和作用详解(eAccelerator、memcached、xcache、APC )
Jul 09 PHP
php集成动态口令认证
Jul 21 PHP
浅谈socket同步和异步、阻塞和非阻塞、I/O模型
Dec 15 PHP
Yii2.0使用阿里云OSS的SDK上传图片、下载、删除图片示例
Sep 20 PHP
ThinkPHP 3使用OSS的方法
Jul 19 PHP
imagettftext() 失效,不起作用
Mar 09 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图片验证码代码
2008/03/27 PHP
php自动适应范围的分页代码
2008/08/05 PHP
php mssql 数据库分页SQL语句
2008/12/16 PHP
功能强大的PHP图片处理类(水印、透明度、旋转)
2015/10/21 PHP
学习php设计模式 php实现访问者模式(Visitor)
2015/12/07 PHP
关于PHP内置的字符串处理函数详解
2017/02/04 PHP
彻底搞懂PHP 变量结构体
2017/10/11 PHP
网络之美 JavaScript中Get和Set访问器的实现代码
2010/09/19 Javascript
使用js实现雪花飘落效果
2013/08/26 Javascript
jquery遍历筛选数组的几种方法和遍历解析json对象
2013/12/13 Javascript
JS案例分享之金额小写转大写
2014/05/15 Javascript
Javascript实现单张图片浏览
2014/12/18 Javascript
用Node.js通过sitemap.xml批量抓取美女图片
2015/05/28 Javascript
使用JQuery实现的分页插件分享
2015/11/05 Javascript
Node.js中npm常用命令大全
2016/06/09 Javascript
完美解决jQuery fancybox ie 无法显示关闭按钮的问题
2016/11/29 Javascript
jQuery实现页面顶部下拉广告
2016/12/30 Javascript
Angular.js自动化测试之protractor详解
2017/07/07 Javascript
vue中appear的用法
2017/08/17 Javascript
关于vue-router的beforeEach无限循环的问题解决
2017/09/09 Javascript
js读取本地文件的实例
2017/12/22 Javascript
vue根据条件不同显示不同按钮的操作
2020/08/04 Javascript
js实现抽奖功能
2020/11/24 Javascript
[54:19]完美世界DOTA2联赛PWL S2 Magma vs PXG 第二场 11.28
2020/12/01 DOTA
Python实现批量把SVG格式转成png、pdf格式的代码分享
2014/08/21 Python
Python动态加载模块的3种方法
2014/11/22 Python
Python算术运算符实例详解
2017/05/31 Python
Python代码中如何读取键盘录入的值
2020/05/27 Python
详解css3 object-fit属性
2018/07/27 HTML / CSS
澳大利亚女士时装在线:Rockmans
2018/09/26 全球购物
预备党员党校学习自我评价分享
2013/11/12 职场文书
无工作经验者个人求职信范文
2013/12/22 职场文书
读群众路线心得体会
2014/03/07 职场文书
单位员工收入证明样本
2014/10/09 职场文书
基层工作经验证明样本
2014/11/16 职场文书
tree shaking对打包体积优化及作用
2022/07/07 Java/Android