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 相关文章推荐
MySQL授权问题总结
May 06 PHP
php中处理mysql_fetch_assoc返回来的数组 不用foreach----echo
May 04 PHP
php数组函数序列之array_values() 获取数组元素值的函数与方法
Oct 30 PHP
深入解析php之sphinx
May 15 PHP
smarty模板引擎之内建函数用法
Mar 30 PHP
PHP使用flock实现文件加锁的方法
Jul 01 PHP
PHP计算加权平均数的方法
Jul 16 PHP
php获取ip及网址的简单方法(必看)
Apr 01 PHP
php使用 readfile() 函数设置文件大小大小的方法
Aug 11 PHP
PHP仿tp实现mvc框架基本设计思路与实现方法分析
May 23 PHP
thinkPHP5框架设置404、403等http状态页面的方法
Jun 05 PHP
Laravel框架基于ajax实现二级联动功能示例
Jan 17 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
DC《小丑》11项提名领跑奥斯卡 Netflix成第92届奥斯卡提名最大赢家
2020/04/09 欧美动漫
phpmyadmin中配置文件现在需要绝密的短语密码的解决方法
2007/02/11 PHP
用PHP和Shell写Hadoop的MapReduce程序
2014/04/15 PHP
PHP使用pear自带的mail类库发邮件的方法
2015/07/08 PHP
php+html5+ajax实现上传图片的方法
2016/05/14 PHP
微信第三方登录(原生)demo【必看篇】
2017/05/26 PHP
动态为事件添加js代码示例
2009/02/15 Javascript
js 获取Listbox选择的值的代码
2010/04/15 Javascript
JavaScript中清空数组的三种方法分享
2011/04/07 Javascript
js取得url地址参数实例
2013/02/22 Javascript
js 窗口抖动示例
2013/09/04 Javascript
JS格式化数字保留两位小数点示例代码
2013/10/15 Javascript
js实现简单的星级选择器提交效果适用于评论等
2013/10/18 Javascript
Js nodeType 属性全面解析
2013/11/14 Javascript
js改变css样式的三种方法推荐
2016/06/28 Javascript
js判断数组key是否存在(不用循环)的简单实例
2016/08/03 Javascript
JS实现获取毫秒值及转换成年月日时分秒的方法
2018/08/15 Javascript
vuex如何重置所有state(可定制)
2019/01/17 Javascript
Vue项目总结之webpack常规打包优化方案
2019/06/06 Javascript
Python版实现微信公众号扫码登陆
2020/05/28 Javascript
利用React高阶组件实现一个面包屑导航的示例
2020/08/23 Javascript
Vue常用API、高级API的相关总结
2021/02/02 Vue.js
[02:30]DOTA2放量测试专访海涛:呼吁保护新手玩家
2013/08/26 DOTA
python使用BeautifulSoup分析网页信息的方法
2015/04/04 Python
在Python中测试访问同一数据的竞争条件的方法
2015/04/23 Python
基于python 爬虫爬到含空格的url的处理方法
2018/05/11 Python
Pytorch中的自动求梯度机制和Variable类实例
2020/02/29 Python
如何在Django中使用聚合的实现示例
2020/03/23 Python
JACK & JONES瑞典官方网站:杰克琼斯欧式风格男装
2017/12/23 全球购物
自愿离婚协议书范本
2014/09/13 职场文书
2014年学校食堂工作总结
2014/11/25 职场文书
毕业设计论文评语
2014/12/31 职场文书
明星邀请函
2015/02/02 职场文书
2015年财务部年度工作总结
2015/05/19 职场文书
铁人纪念馆观后感
2015/06/16 职场文书
领导离职感言
2015/08/03 职场文书