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 伪静态隐藏传递参数名的四种方法
Feb 22 PHP
php中用加号与用array_merge合并数组的区别深入分析
Jun 03 PHP
解析php中die(),exit(),return的区别
Jun 20 PHP
zf框架的zend_cache缓存使用方法(zend框架)
Mar 14 PHP
Yii实现多按钮保存与提交的方法
Dec 03 PHP
php数组函数array_walk用法示例
May 26 PHP
简述php环境搭建与配置
Dec 05 PHP
PHP用正则匹配form表单中所有元素的类型和属性值实例代码
Feb 28 PHP
PHP实现的多维数组排序算法分析
Feb 10 PHP
详解Laravel5.6 Passport实现Api接口认证
Jul 27 PHP
PHP Trait功能与用法实例分析
Jun 03 PHP
PHP isset empty函数相关面试题及解析
Dec 11 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 友好URL的实现(吐血推荐)
2008/10/04 PHP
php获取网卡的MAC地址支持WIN/LINUX系统
2014/04/30 PHP
PHP函数extension_loaded()用法实例
2015/01/19 PHP
配置Nginx+PHP的正确思路与过程
2016/05/10 PHP
PHP入门教程之PHP操作MySQL的方法分析
2016/09/11 PHP
THinkPHP获取客户端IP与IP地址查询的方法
2016/11/14 PHP
PHP实现一维数组与二维数组去重功能示例
2018/05/24 PHP
将HTMLCollection/NodeList/伪数组转换成数组的实现方法
2011/06/20 Javascript
Jquery实现简单的动画效果代码
2012/03/18 Javascript
纯js网页画板(Graphics)类简介及实现代码
2012/12/24 Javascript
JavaScript异步编程Promise模式的6个特性
2014/04/03 Javascript
Javascript表单验证要注意的事项
2014/09/29 Javascript
jQuery EasyUI window窗口使用实例代码
2017/12/25 jQuery
实例分析编写vue组件方法
2019/02/12 Javascript
详解vuejs2.0 select 动态绑定下拉框支持多选
2019/04/25 Javascript
python中合并两个文本文件并按照姓名首字母排序的例子
2014/04/25 Python
用于统计项目中代码总行数的Python脚本分享
2015/04/21 Python
利用python画一颗心的方法示例
2017/01/31 Python
Python用imghdr模块识别图片格式实例解析
2018/01/11 Python
windows下python 3.6.4安装配置图文教程
2018/08/21 Python
python pandas cumsum求累计次数的用法
2019/07/29 Python
django rest framework vue 实现用户登录详解
2019/07/29 Python
python2爬取百度贴吧指定关键字和图片代码实例
2019/08/14 Python
使用matplotlib绘制图例标签中带有公式的图
2019/12/13 Python
python模块如何查看
2020/06/16 Python
python软件测试Jmeter性能测试JDBC Request(结合数据库)的使用详解
2021/01/26 Python
python实现简单的学生管理系统
2021/02/22 Python
纯CSS3实现运行时钟的示例代码
2021/01/25 HTML / CSS
俄罗斯花园种植材料批发和零售网上商店:Беккер
2019/07/22 全球购物
美国排名第一的葡萄酒俱乐部:Firstleaf Wine Club
2020/01/02 全球购物
学术会议欢迎词
2014/01/09 职场文书
制药工程专业个人求职自荐信
2014/01/25 职场文书
学生周末回家住宿长期请假条
2014/02/15 职场文书
党的群众路线教育实践活动整改方案
2014/10/28 职场文书
python通过opencv调用摄像头操作实例分析
2021/06/07 Python
springboot如何接收application/x-www-form-urlencoded类型的请求
2021/11/02 Java/Android