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提示undefined index的几种解决方法
May 21 PHP
php-cli简介(不会Shell语言一样用Shell)
Jun 03 PHP
利用curl抓取远程页面内容的示例代码
Jul 23 PHP
浅析Mysql 数据回滚错误的解决方法
Aug 05 PHP
Dwz与thinkphp整合下的数据导出到Excel实例
Dec 04 PHP
两个php日期控制类实例
Dec 09 PHP
php源码分析之DZX1.5加密解密函数authcode用法
Jun 17 PHP
PHP调试的强悍利器之PHPDBG
Feb 22 PHP
php实现贪吃蛇小游戏
Jul 26 PHP
php+ajax简单实现全选删除的方法
Dec 06 PHP
使用php自动备份数据库表的实现方法
Jul 28 PHP
Laravel中encrypt和decrypt的实现方法
Sep 24 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
浅谈电磁辐射对健康的影响
2021/03/01 无线电
SONY SRF-40W电路分析
2021/03/02 无线电
PHP关联链接常用代码
2012/11/05 PHP
php生成随机颜色的方法
2014/11/13 PHP
ThinkPHP打水印及设置水印位置的方法
2016/10/14 PHP
Yii2框架制作RESTful风格的API快速入门教程
2016/11/08 PHP
个人总结的一些关于String、Function、Array的属性和用法
2007/01/10 Javascript
使用jquery实现select添加实现后台权限添加的效果
2011/05/28 Javascript
javascript修改图片src的方法
2015/01/27 Javascript
javascript实现ecshop搜索框键盘上下键切换控制
2015/03/18 Javascript
jQuery中$.each()函数的用法引申实例
2016/05/12 Javascript
JS for循环中i++ 和 ++i的区别介绍
2016/07/20 Javascript
使用伪命名空间封装保护独自创建的对象方法
2016/08/04 Javascript
微信小程序 高德地图SDK详解及简单实例(源码下载)
2017/01/11 Javascript
javascript设计模式之中介者模式学习笔记
2017/02/15 Javascript
无循环 JavaScript(map、reduce、filter和find)
2017/04/08 Javascript
bootstrap table表格插件之服务器端分页实例代码
2018/09/12 Javascript
微信小程序列表中item左滑删除功能
2018/11/07 Javascript
JS实现炫酷雪花飘落效果
2020/08/19 Javascript
[06:13]DOTA2进化论(修改版)
2013/10/08 DOTA
python中查看变量内存地址的方法
2015/05/05 Python
python opencv 图像尺寸变换方法
2018/04/02 Python
python脚本生成caffe train_list.txt的方法
2018/04/27 Python
python3+requests接口自动化session操作方法
2018/10/13 Python
pytorch下使用LSTM神经网络写诗实例
2020/01/14 Python
Python opencv相机标定实现原理及步骤详解
2020/04/09 Python
使用PyCharm官方中文语言包汉化PyCharm
2020/11/18 Python
沃尔玛旗下墨西哥超市:Bodega Aurrera
2020/11/13 全球购物
周年庆典邀请函范文
2014/01/23 职场文书
简历里的自我评价范文
2014/02/24 职场文书
网络信息安全承诺书
2014/03/26 职场文书
《郑和远航》教学反思
2014/04/16 职场文书
如何写股份合作协议书
2014/09/11 职场文书
百万英镑观后感
2015/06/09 职场文书
老生常谈 使用 CSS 实现三角形的技巧(多种方法)
2021/04/13 HTML / CSS
基于Python实现一个春节倒计时脚本
2022/01/22 Python