php实现快速排序法函数代码
php实现快速排序法函数代码
发布时间:2016-12-29 来源:查字典编辑
摘要:代码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教程学习
编程开发子分类