PHP两种快速排序算法的一个实例
递推法:
*递归快速排序
* /
功能快速排序($ SEQ)
{
$ = $序列{ 0 };
$ =数组();
$ =数组();
为($我= 1;美元美元美元我<< _size;i++){
如果($ { $ I } $ K){
x $ $ $ =;
{人}
$ $;
}
}
X元= quicksort(X元);
Y元= quicksort(Y元);
返回array_merge(X元,阵列(k),Y元);
{ { { }
返回$;
}
}
迭代法:
*迭代法的快速排序
* /
功能quicksortx($ SEQ)
{
$堆栈=数组(序列);
数组();
当($堆栈){
美元($堆栈)array_pop ARR =;
如果(计数($ ARR)<= 1){
如果(计数($ ARR)= = 1){
排序{ } = $ ARR { 0 };
}
继续;
}
$ k = $ ARR { 0 };
$ =数组();
$ =数组();
_size美元=计数($ ARR);
为($我= 1;美元美元美元我<< _size;i++){
如果($ ARR { $我} $ k){
X元{ } = {我} ARR美元美元;
{人}
Y元{ } = {我} ARR美元美元;
}
}
空(Y元)array_push(合栈,Y元);
array_push(合栈,数组($ ARR { 0 }));
空(X元)array_push(合栈,X元);
}
返回$排序;
}
使用uff1a
*生成随机数组
* /
($ i = 0;$ i < 5;$ + +){
testarr美元{ } = mt_rand(0100);
}
var_dump($ testarr);
var_dump(快速排序($ testarr));
var_dump(quicksortx($ testarr));