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 相关文章推荐
一个简单的自动发送邮件系统(二)
Oct 09 PHP
php中几种常见安全设置详解
Apr 06 PHP
从手册去理解分析PHP session机制
Jul 17 PHP
php curl模拟post提交数据示例
Dec 31 PHP
php比较两个绝对时间的大小
Jan 31 PHP
两种php实现图片上传的方法
Jan 22 PHP
PHP中文字符串截断无乱码解决方法
Oct 10 PHP
动态表单验证的操作方法和TP框架里面的ajax表单验证
Jul 19 PHP
php输出控制函数和输出函数生成静态页面
Jun 27 PHP
laravel框架的安装与路由实例分析
Oct 11 PHP
详解Laravel服务容器的优势
May 29 PHP
一文搞懂PHP中的抽象类和接口
May 25 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
弄了个检测传输的参数是否为数字的Function
2006/12/06 PHP
windows环境下php配置memcache的具体操作步骤
2013/06/09 PHP
json 入门基础教程 推荐
2009/10/31 Javascript
尝试在让script的type属性等于text/html
2013/01/15 Javascript
jQuery JSON实现无刷新三级联动实例探讨
2013/05/28 Javascript
9款2014最热门jQuery实用特效推荐
2014/12/07 Javascript
简介JavaScript中fixed()方法的使用
2015/06/08 Javascript
JQuery包裹DOM节点的方法
2015/06/11 Javascript
在JavaScript中访问字符串的子串
2015/07/07 Javascript
基于JS实现简单的样式切换效果代码
2015/09/04 Javascript
JS实现可展开折叠层的鼠标拖曳效果
2015/10/09 Javascript
Vue.js计算属性computed与watch(5)
2016/12/09 Javascript
如何通过非数字与字符的方式实现PHP WebShell详解
2017/07/02 Javascript
Vue下的国际化处理方法
2017/12/18 Javascript
小程序云开发初探(小结)
2018/10/24 Javascript
使用typescript构建Vue应用的实现
2019/08/26 Javascript
jupyter安装小结
2016/03/13 Python
python利用lxml读写xml格式的文件
2017/08/10 Python
Python3实现爬取指定百度贴吧页面并保存页面数据生成本地文档的方法
2018/04/22 Python
python使用正则筛选信用卡
2019/01/27 Python
selenium跳过webdriver检测并模拟登录淘宝
2019/06/12 Python
用Python获取摄像头并实时控制人脸的实现示例
2019/07/11 Python
Python生成六万个随机,唯一的8位数字和数字组成的随机字符串实例
2020/03/03 Python
使用Python+selenium实现第一个自动化测试脚本
2020/03/17 Python
python 日志 logging模块详细解析
2020/03/31 Python
浅谈Python中的继承
2020/06/19 Python
Vince官网:全球著名设计师品牌,休闲而优雅的服饰
2017/01/15 全球购物
Nike荷兰官方网站:Nike.com (NL)
2018/04/19 全球购物
英国领先的大码时装品牌之一:Elvi
2018/08/26 全球购物
荷兰浴室和卫浴网上商店:Badkamerxxl.nl
2020/10/06 全球购物
物业门卫岗位职责
2013/12/28 职场文书
合作协议书模板
2014/10/10 职场文书
2015年维修工作总结
2015/04/25 职场文书
护理培训心得体会
2016/01/22 职场文书
Python Django框架介绍之模板标签及模板的继承
2021/05/27 Python
一篇文章带你复习java知识点
2021/06/28 Java/Android