利用php怎么实现一个快速排序函数

介绍

利用php怎么实现一个快速排序函数?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

具体如下

& lt; ? php 

函数快速排序(str) {
如果(count ($ str) & lt;=1)返回str美元;//如果个数不大于一,直接返回
键=str[0];美元//取一个值,稍后用来比较,
$ left_arr=数组();
$ right_arr=数组();
(i=1; i<美元;count ($ str);美元我+ +){//美元比重要大的放在右边,小的放在左边;
如果(str [$ i] & lt;美元=$键)
left_arr美元[]=$ str ($ i);其他

right_arr美元[]=$ str ($ i);
}
$ left_arr=快速排序($ left_arr);//进行递归;
$ right_arr=快速排序($ right_arr);
返回array_merge ($ left_arr数组(键)美元right_arr美元);//将左中右的值合并成一个数组;
}//以下是测试
$ str=数组(5、3、8、2、5、9、7、2、1,4,0);
print_r(快速排序(str)美元);
?比;


代码2:

代码如下:


/* @快速排序法*/
函数快速排序(左,右,美元arr美元){
l=美元离开;
r=美元;
主=arr美元[(左+右)美元/2);
$ temp=0;

, (l, (arr美元[l] & lt;主美元){
$ l + +;
}
, (arr ($ r)在主美元){
$ r——;
}

如果(l>美元;=$ r)打破;

temp=arr美元[l]美元;
arr [l]美元=arr美元($ r);
arr [$ r]=temp美元;

如果(arr [l]美元==主美元)——$ r;
如果arr [$ r]==美元(主)+ + $ l;
}

如果(l==r美元){
$ l + +;
$ r——;
}

如果(left快速排序(左)r,美元arr美元);
} elseif (right> l)美元{
快速排序(l,对了,美元arr美元);其他
} {
返回arr美元;
}
}

关于利用php怎么实现一个快速排序函数问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。

利用php怎么实现一个快速排序函数