php的冒泡用递归怎么做啊
我可不可以把第一个外层循环for去掉,然后在print_r后边调用maopao($arr),实现递归
如果可以,那么停止条件该怎么找啊
使用递归实现php冒泡算法的代码,并记录了使用过程终于到的问题以及解决方法,有需要的小伙伴可以参考下哦
实现
复制代码 代码如下:/* 冒泡算法(递归实现)*/
function maoPao($array, $index=0){ $count = count($array);
if(($count-1) $index; $i-- ) { if($array[$i]
1 [1] => 3 [2] => 4
[3] => 5 [4] => 6 [5] => 7 [6] => 8 [7] => 9 [8] => 12
)
问题:
在尝试这个实现的时候遇到了一个问题,还未解决。
在这里:
复制代码 代码如下:$index ;return maoPao($array,
$index);//return maoPao($array, $index );
/******************
如果直接使用第三行,而不是先$index ,再ruturn的话就会进入死循环。
我在函数的开始输出$index,都是0,就是说$index 后传递给递归函数的参数不是$index 应该的结果(即$index=$index 1)。
maoPao($array, $index )不是$index ; return maoPao($array,
$index);的简短写法吗,为何两种结果不一样,希望能得到各位的解答。
******************/
补充:
解答:
复制代码 代码如下:$index 与 $index两者的区别, $index 被称作后增量,
$index被称为前增量, 虽然最后的$index的结果都是会 1。
但传递变量的时候会有不一样的地方。
$index = 1;$m = $index ;echo $index。'
'; //结果为2echo
$m。'
'; //结果为1。
因为是后增量, 会先把初始的$index=1 赋给$m,然后$index自增1;
$index = 1;$n = $index;echo $index。'
'; //结果为2echo
$n; //结果为2。
因为是前增量, 会先执行$index 1的操作, 再赋值给$n;。
答:我还是觉得带宝重要,曾经想开个淘宝店,不过就我这一有事宝都不好好睡,算了。。。详情>>
答:网络标识就是用IP的二进制与子网掩码的二进制数据作与运算(可用WINDOWS计算器算二进制),所得结果,而不是IP地址前几段相同就表示在同一网段详情>>
答:取系统时间()详情>>