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生成静态HTML速度快类库
Mar 18 PHP
一篇入门的php Class 文章
Apr 04 PHP
解析php函数method_exists()与is_callable()的区别
Jun 21 PHP
php树型类实例
Dec 05 PHP
php中使用key,value,current,next和prev函数遍历数组的方法
Mar 17 PHP
php实现粘贴截图并完成上传功能
May 17 PHP
php简单判断两个字符串是否相等的方法
Jul 13 PHP
分享PHP函数实现数字与文字分页代码
Jul 28 PHP
Apache启动报错No space left on device: AH00023该怎么解决
Oct 16 PHP
浅析php设计模式之数据对象映射模式
Mar 03 PHP
PHP单例模式定义与使用实例详解
Feb 06 PHP
php引用传递
Apr 01 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
Zend Guard一些常见问题解答
2008/09/11 PHP
在IIS7.0下面配置PHP 5.3.2运行环境的方法
2010/04/13 PHP
PHP的SQL注入过程分析
2012/01/06 PHP
php中的路径问题与set_include_path使用介绍
2014/02/11 PHP
php获取字段名示例分享
2014/03/03 PHP
Yii框架批量插入数据扩展类的简单实现方法
2017/05/23 PHP
php数组遍历类与用法示例
2019/05/24 PHP
javascript 装载iframe子页面,自适应高度
2009/03/20 Javascript
jquery pagination插件实现无刷新分页代码
2009/10/13 Javascript
js获取ajax返回值代码
2014/04/30 Javascript
js星星评分效果
2014/07/24 Javascript
JavaScript实现动画打开半透明提示层的方法
2015/04/21 Javascript
javascript带回调函数的异步脚本载入方法实例分析
2015/07/02 Javascript
详解Angular中$cacheFactory缓存的使用
2016/08/19 Javascript
Select2.js下拉框使用小结
2016/10/24 Javascript
Angularjs中的页面访问权限怎么设置
2016/11/11 Javascript
详解js产生对象的3种基本方式(工厂模式,构造函数模式,原型模式)
2017/01/09 Javascript
JS实现复选框的全选和批量删除功能
2017/04/05 Javascript
vue.js评论发布信息可插入QQ表情功能
2017/08/08 Javascript
基于Vue实现图片在指定区域内移动的思路详解
2018/11/11 Javascript
vue缓存之keep-alive的理解和应用详解
2020/11/02 Javascript
Python实现网站注册验证码生成类
2017/06/08 Python
Python面向对象程序设计之继承与多继承用法分析
2018/07/13 Python
在双python下设置python3为默认的方法
2018/10/31 Python
Python从Excel中读取日期一列的方法
2018/11/28 Python
使用Django2快速开发Web项目的详细步骤
2019/01/06 Python
Python配置虚拟环境图文步骤
2019/05/20 Python
使用tensorflow框架在Colab上跑通猫狗识别代码
2020/04/26 Python
python爬虫使用正则爬取网站的实现
2020/08/03 Python
python 制作磁力搜索工具
2021/03/04 Python
爱祖国演讲稿
2014/05/04 职场文书
批评与自我批评发言稿
2014/10/15 职场文书
行政前台岗位职责
2015/04/16 职场文书
赢在执行观后感
2015/06/16 职场文书
浅析MySQL如何实现事务隔离
2021/06/26 MySQL
TypeScript实用技巧 Nominal Typing名义类型详解
2022/09/23 Javascript