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脚本的10个技巧(4)
Oct 09 PHP
function.inc.php超越php
Dec 09 PHP
删除数组元素实用的PHP数组函数
Aug 18 PHP
让PHP开发者事半功倍的十大技巧小结
Apr 20 PHP
php打造属于自己的MVC框架
Mar 07 PHP
PHP文件上传主要代码讲解
Sep 30 PHP
微信扫描二维码登录网站代码示例
Dec 30 PHP
thinkphp实现多语言功能(语言包)
Mar 04 PHP
php实现的mongodb操作类
May 28 PHP
PHP实现发送邮件的方法(基于简单邮件发送类)
Dec 17 PHP
如何批量清理系统临时文件(语言:C#、 C/C++、 php 、python 、java )
Feb 01 PHP
PHP按符号截取字符串的指定部分的实现方法
Sep 10 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
DISCUZ 分页代码
2007/01/02 PHP
phpinfo 系统查看参数函数代码
2009/06/05 PHP
PHP 简单数组排序实现代码
2009/08/05 PHP
php文件上传表单摘自drupal的代码
2011/02/15 PHP
PHP版网站缓存加快打开速度的方法分享
2012/06/03 PHP
Laravel5.7 数据库操作迁移的实现方法
2019/04/12 PHP
PHP7新特性
2021/03/09 PHP
javascript 子窗体父窗体相互传值方法
2010/05/31 Javascript
javascript中关于break,continue的特殊用法与介绍
2012/05/24 Javascript
js计算精度问题小结
2013/04/22 Javascript
按下Enter焦点移至下一个控件的实现js代码
2013/12/11 Javascript
js字符串转换成数字与数字转换成字符串的实现方法
2014/01/08 Javascript
jquery实现点击弹出层效果的简单实例
2014/03/03 Javascript
封装好的javascript前端分页插件pagination
2016/01/04 Javascript
Windows 系统下设置Nodejs NPM全局路径
2016/04/26 NodeJs
ie下js不执行的几种可能
2017/02/28 Javascript
jQuery实现锚点向下平滑滚动特效示例
2017/08/29 jQuery
Vue-Router模式和钩子的用法
2018/02/28 Javascript
Python基于pygame实现图片代替鼠标移动效果
2015/11/11 Python
python中正则的使用指南
2016/12/04 Python
Python实现的桶排序算法示例
2017/11/29 Python
对python cv2批量灰度图片并保存的实例讲解
2018/11/09 Python
django框架使用orm实现批量更新数据的方法
2019/06/21 Python
Python实现性能自动化测试竟然如此简单
2019/07/30 Python
python 上下文管理器及自定义原理解析
2019/11/19 Python
SpringBoot实现登录注册常见问题解决方案
2020/03/04 Python
CSS3中使用RGBa来调节透明度的教程
2016/05/09 HTML / CSS
html如何对span设置宽度
2019/10/30 HTML / CSS
学生打架检讨书
2014/02/14 职场文书
上课看小说检讨书
2014/02/22 职场文书
安全宣传标语口号
2014/06/06 职场文书
高中生思想道德自我评价
2015/03/09 职场文书
工程合作意向书范本
2015/05/09 职场文书
中秋节随笔
2015/08/15 职场文书
python 统计代码耗时的几种方法分享
2021/04/02 Python
CSS3实现三角形不断放大效果
2021/04/13 HTML / CSS