php 递归快速排序,php,递归调用_关于php的快速排序,如何递归?,php,递归调用 - phpStudy...

关于php的快速排序,如何递归?

我想实现php下的递归,下面这段代码只能实现第一次排序,

但是不知道如何实现递归,了解了通过把两个左右数组merge一下,还是傻傻搞不明白。

请教各位,帮忙把代码优化下,或者贴下结果。谢谢~

$arr=[66,13,51,76,81,26,57,69,23];

function swap(&$a,&$b){

$tmp=$a;

$a=$b;

$b=$tmp;

unset($tmp);

return true;

}

function quicksort($arr){

$i=0;

$j=count($arr)-1;

$tmpb=$arr[0];// 基准元素 pivot

while($arr[$i]!==$arr[$j]){

//先从最右边找

while ($arr[$j]>$tmpb){

echo $arr[$j],"比",$tmpb,"大 go on ","\n";

--$j;

echo '$j',"减1,下标为",$j,"值为--";echo $arr[$j]."\n";

echo '现在数组为',"\n";

var_dump($arr);

}

// 如果这个值比pivot小了,那么就交换,然后从开始到左边找

if($arr[$j]

echo $arr[$j],"比",$tmpb,"小了~ ";

echo '交换',"\n";

swap($arr[$j],$arr[$i]);

++$i;

echo '现在数组为',"\n";

var_dump($arr);

echo '$i',"加1,下标为",$i,"值为--";echo $arr[$i]."\n";

echo "在从左边开始";

echo "\n";

}

// 然后从左边开始找

while($arr[$i]

echo $arr[$i],'比',$tmpb,'小 go on ',"\n",'';

++$i;

echo '$i',"加1,下标为",$i,"值为---";echo $arr[$i]."\n";

}

if($arr[$i]>$tmpb){

echo $arr[$i],'比',$tmpb,'大了,交换';

swap($arr[$i],$arr[$j]);

--$j;

echo '$j',"减1,下标为",$j,"值为--";echo $arr[$j]."\n";

echo '现在数组为',"\n";

var_dump($arr);

echo "在从右边边开始";

echo '再走一层最外层while',"\n";

}

}

return $arr;

}

$result=quicksort($arr);

echo "========================","最终结果为\n";

var_dump($result);

执行的结果我贴一下:

========================最终结果为

array (

0 => 23,

1 => 13,

2 => 51,

3 => 57,

4 => 26,

5 => 66,

6 => 81,

7 => 69,

8 => 76,

)他只是按找66分成了左右两部分,结合我上面的思路,怎么能递归呢?

相关阅读:

cell的数据从网上获取,根据数量,来显示有几条cell显示,现在先写几条假数据,让页面显示3条数据,怎么写?

有什么好用的开源erp系统?

jquery如何实现延迟执行点击事件

php mysqli 不能连接mysql.sock

git pull 的完整怎么写?为什么我拉下来的不完整呢?我需要从下图的分支拉代码。

PHP 求使用框架开发的一些经验

upload文件上传一次最多上传4张图片并最多显示四张缩略图?

thinkphp3.1.3如果不大规模改写代码的情况下有配置文件可以设置为不编译生成模板缓存吗?

用java-POI 导入excel表格

linux 上文件用vim 编辑保存后,自动生成了一个文件(文件名加了个 “~”号)怎么去除掉?

用clion打开nodejs工程,run/debug configuration没有BuildAll和Node选择项

正则表达式内用了.*?,如何继续惰性筛选里面的内容?

关于webservice(php)

vue checkbox 选中如何取到value的值

CSS:为什么有时候两个在一起的同胞元素,并没有设定margin值,可是之间却还是有一定的外边距?

php 用spl_autoload时,传来的命名空间分割符是\,这个在linux上出问题

Document的setXmlStandalone()方法不生效

可以在七牛云存储中设置文件的response header不?Vary: Accept-Encoding

yii2里面 有thinkphp里面 $this->fetch('index.html') 将模板解析后,返回变量的方法吗??

这种网页特效是用什么实现的?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值