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;
}
}

相关文章

  • jquery不支持toggle()高(新)版本的问题解决

    jquery不支持toggle()高(新)版本的问题解决

    这篇文章主要介绍了jquery不支持toggle()高(新)版本的问题解决的相关资料,需要的朋友可以参考下
    2016-09-09
  • PHP数组去重的更快实现方式分析

    PHP数组去重的更快实现方式分析

    这篇文章主要介绍了PHP数组去重的更快实现方式,结合实例形式对比分析了php实现数组去重的各种常见操作技巧与注意事项,需要的朋友可以参考下
    2018-05-05
  • mysql中存储过程、函数的一些问题

    mysql中存储过程、函数的一些问题

    mysql中存储过程、函数的一些问题...
    2007-02-02
  • php在linux环境中如何使用redis详解

    php在linux环境中如何使用redis详解

    这篇文章主要给大家介绍了关于php在linux环境中如何使用redis的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • 利用PHP内置SERVER开启web服务(本地开发使用)

    利用PHP内置SERVER开启web服务(本地开发使用)

    PHP 5.4.0起, CLI SAPI 提供了一个内置的Web服务器,这个内置的Web服务器主要用于本地开发使用,不可用于线上产品环境,URI请求会被发送到PHP所在的的工作目录Working Directory进行处理,除非你使用了-t参数来自定义不同的目录
    2020-01-01
  • WordPress网站性能优化指南

    WordPress网站性能优化指南

    很多博主都会感觉WordPress很慢?作为全世界最常用的建站和博客系统WordPress来说,在性能设计上肯定不会有太大的问题,WordPress开发团队也肯定也考虑到这个问题。那么 WordPress 效率问题主要是出在哪里呢?今天就给大家讲讲自己多年总结的 WordPress优化经验和技巧
    2015-11-11
  • PHP 无限分类三种方式 非函数的递归调用!

    PHP 无限分类三种方式 非函数的递归调用!

    今天分享下自己学习细说php中的无限分类方法。学习php的朋友可以参考下。
    2011-08-08
  • php源码分析之DZX1.5随机数函数random用法

    php源码分析之DZX1.5随机数函数random用法

    这篇文章主要介绍了php源码分析之DZX1.5随机数函数random用法,实例分析了DZX1.5中random函数生成随机字符串的使用技巧,需要的朋友可以参考下
    2015-06-06
  • 基于PHP读取csv文件内容的详解

    基于PHP读取csv文件内容的详解

    本篇文章是对PHP读取csv文件的内容进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • PHP关于IE下的iframe跨域导致session丢失问题解决方法

    PHP关于IE下的iframe跨域导致session丢失问题解决方法

    一个登录页面,被别的网站用iframe嵌进去后,死活无法登录(只在IE中存在这种情况)。主要是session无法被保存的问题,下面把个人的解决过程分享个大家
    2013-10-10

最新评论