php实现快速排序法函数代码

 更新时间:2012年08月27日 15:56:44   作者:  
取一个值与其他值进行比较,小的放在这个值的左边,大的放在这个值的右边,然后按照这个方式递归
代码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连接mssql的一些相关经验及注意事项

    php连接mssql的一些相关经验及注意事项

    php连接mssql对于很多朋友或许已经是老生长谈,习以为常了,不过本文还是要唠叨一下,主要以分享连接数据库的相关经验,感兴趣的你可千万不要错过,或许本文对你有所帮助呢
    2013-02-02
  • php表单提交与$_POST实例分析

    php表单提交与$_POST实例分析

    这篇文章主要介绍了php表单提交与$_POST,实例分析了表单提交中$_POST变量的具体内容形式,有助于更好的掌握表单提交中的数据操作技巧,需要的朋友可以参考下
    2015-01-01
  • PHP PDOStatement::setFetchMode讲解

    PHP PDOStatement::setFetchMode讲解

    今天小编就为大家分享一篇关于PHP PDOStatement::setFetchMode讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-02-02
  • CTF命令执行及绕过技巧

    CTF命令执行及绕过技巧

    这篇文章主要介绍了CTF命令执行及绕过技巧,对CTF感兴趣的同学,可以参考下
    2021-04-04
  • PHP创建word文档的方法(平台无关)

    PHP创建word文档的方法(平台无关)

    这篇文章主要介绍了PHP创建word文档的方法,结合实例形式分析了与平台无关的生成word文档的方法,非常简单实用,需要的朋友可以参考下
    2016-03-03
  • PHP编程求最大公约数与最小公倍数的方法示例

    PHP编程求最大公约数与最小公倍数的方法示例

    这篇文章主要介绍了PHP编程求最大公约数与最小公倍数的方法,涉及php数学计算的相关运算技巧,需要的朋友可以参考下
    2017-05-05
  • PHPThumb PHP 图片缩略图库

    PHPThumb PHP 图片缩略图库

    刚上网搜索了一下,跟这个同名的还有另一个,似乎也挺不错的,这个类库是github.com上的一个开源项目:PHPThumb
    2012-03-03
  • php运行报错Call to undefined function curl_init()的最新解决方法

    php运行报错Call to undefined function curl_init()的最新解决方法

    其实在网上很早之前就出现过这个问题,网上百度了下,答案千篇一律,最近又遇到这个问题,但是百度出来的问题不能解决这个问题了,所以只能翻墙找答案,现在将解决的方法分享给大家,有需要的朋友们可以参考借鉴,下面来一起学习学习吧。
    2016-11-11
  • PHP版微信小店接口开发实例

    PHP版微信小店接口开发实例

    这篇文章主要介绍了PHP版微信小店接口开发方法,结合实例形式分析了php实现微信小店接口调用的相关操作技巧,需要的朋友可以参考下
    2016-11-11
  • shopex主机报错误请求解决方案(No such file or directory)

    shopex主机报错误请求解决方案(No such file or directory)

    最近vps客户和服务托管客户安装了shopex网店系统,他们的主机都报错,错误特点一样,针对这个错误我司技术推出shopex主机报错误请求解决方案,希望能给予各位一点帮助
    2011-12-12

最新评论