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 相关文章推荐
解析在zend Farmework下如何创立一个FORM表单
Jun 28 PHP
解析在PHP中使用mysqli扩展库对mysql的操作
Jul 03 PHP
PHP中的str_repeat函数在JavaScript中的实现
Sep 16 PHP
linux实现php定时执行cron任务详解
Dec 24 PHP
php多文件上传实现代码
Feb 20 PHP
简单谈谈php中的unicode和utf8编码
Jun 10 PHP
PHP获取页面执行时间的方法(推荐)
Dec 10 PHP
Thinkphp框架 表单自动验证登录注册 ajax自动验证登录注册
Dec 27 PHP
php模仿qq空间或朋友圈发布动态、评论动态、回复评论、删除动态或评论的功能(中)
Jun 11 PHP
Laravel框架生命周期与原理分析
Jun 12 PHP
PHP使用gearman进行异步的邮件或短信发送操作详解
Feb 27 PHP
win10下 php安装seaslog扩展的详细步骤
Dec 04 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设置页面超时时间解决方法
2015/09/22 PHP
PHP数据库操作三:redis用法分析
2017/08/16 PHP
php之header的不同用法总结(实例讲解)
2017/11/28 PHP
页面只有一个text的时候,回车自动submit的解决方法
2010/08/12 Javascript
jQuery的链式调用浅析
2010/12/03 Javascript
jQuery下通过$.browser来判断浏览器.
2011/04/05 Javascript
window.location.href = window.location.href 跳转无反应 a超链接onclick事件写法
2013/08/21 Javascript
input 禁止输入特殊字符的四种实现方式
2016/08/24 Javascript
JavaScript类的写法
2016/09/17 Javascript
BootStrap Table 获取同行不同列元素的方法
2016/12/19 Javascript
微信小程序 页面跳转和数据传递实例详解
2017/01/19 Javascript
Angular中响应式表单的三种更新值方法详析
2017/08/22 Javascript
vue 每次渲染完页面后div的滚动条保持在最底部的方法
2018/03/17 Javascript
详解Vue2.0配置mint-ui踩过的那些坑
2018/04/23 Javascript
ES6中Set和Map数据结构,Map与其它数据结构互相转换操作实例详解
2019/02/28 Javascript
layui 富文本图片上传接口与普通按钮 文件上传接口的例子
2019/09/23 Javascript
Vue项目打包压缩的实现(让页面更快响应)
2020/03/10 Javascript
Javascript生成器(Generator)的介绍与使用
2021/01/31 Javascript
python解析json实例方法
2013/11/19 Python
Python实现Windows上气泡提醒效果的方法
2015/06/03 Python
一波神奇的Python语句、函数与方法的使用技巧总结
2015/12/08 Python
取numpy数组的某几行某几列方法
2018/04/03 Python
python3+PyQt5+Qt Designer实现堆叠窗口部件
2018/04/20 Python
通过selenium抓取某东的TT购买记录并分析趋势过程解析
2019/08/15 Python
Python selenium实现断言3种方法解析
2020/09/08 Python
HTML5 和小程序实现拍照图片旋转、压缩和上传功能
2018/10/08 HTML / CSS
英国领先的在线鱼贩:The Fish Society
2020/08/12 全球购物
物流仓管员岗位职责
2013/12/04 职场文书
车间工艺员岗位职责
2013/12/09 职场文书
高中的职业生涯规划书
2013/12/28 职场文书
运动会通讯稿300字
2014/02/02 职场文书
建筑院校毕业生求职信
2014/06/13 职场文书
中学生爱国演讲稿
2014/09/05 职场文书
教师工作表现自我评价
2015/03/05 职场文书
Netty结合Protobuf进行编解码的方法
2021/06/26 Java/Android
IDEA2021.2配置docker如何将springboot项目打成镜像一键发布部署
2021/09/25 Java/Android