手机
当前位置:查字典教程网 >编程开发 >php教程 >php实现快速排序法函数代码
php实现快速排序法函数代码
摘要:代码1:复制代码代码如下:代码2:复制代码代码如下:/*@快速排序法*/functionquickSort($left,$right,$ar...

代码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实现随机显示图片方法汇总

php计算给定时间之前的函数用法实例

php实现读取内存顺序号

php解析xml方法实例详解

域名查询代码公布

php使用cookie实现记住用户名和密码实现代码

php实现的简单日志写入函数

用PHP实现文件上传

php获取访问者IP地址汇总

php实现插入排序

精品推荐
分类导航