爱问知识人 爱问教育 医院库

php的冒泡用递归怎么做啊

首页

php的冒泡用递归怎么做啊

我可不可以把第一个外层循环for去掉,然后在print_r后边调用maopao($arr),实现递归


如果可以,那么停止条件该怎么找啊

提交回答

全部答案

    2018-05-17 04:26:16
  •   使用递归实现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;。

    向***

    2018-05-17 04:26:16

类似问题

换一换

相关推荐

正在加载...
最新资料 推荐信息 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 167-186
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):