PHP开发中冒泡算法的实现

来源:爱站网时间:2021-01-29编辑:网友分享
不管是开发什么程序,算法的好坏是很关键的,但是对于一些算法,程序员还是要掌握为好,接下来爱站技术频道小编就为大家简单的分析PHP开发中冒泡算法的实现吧!

不管是开发什么程序,算法的好坏是很关键的,但是对于一些算法,程序员还是要掌握为好,接下来爱站技术频道小编就为大家简单的分析PHP开发中冒泡算法的实现吧!

实现

 

复制代码 代码如下:

/*
    冒泡算法(递归实现)
*/

 

function maoPao($array, $index=0)
{
    $count = count($array);
    if(($count-1)         return $array;

    for($i=$count-1; $i>$index; $i-- )
    {
        if($array[$i]         {
            $tmp = $array[$i];
            $array[$i] = $array[$i-1];
            $array[$i-1] = $tmp;
        }
    }
    $index++;
    return maoPao($array, $index);
    //return maoPao($array, $index++);
}

    $arr = array(12,4,3,1,9,5,6,8,7);
    var_dump(maoPao($arr));

 

结果:

 

复制代码 代码如下:

Array ( [0] => 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.'
';  //结果为2
echo $m.'
';      //结果为1. 因为是后增量, 会先把初始的$index=1 赋给$m,然后$index自增1;

$index = 1;
$n = ++$index;
echo $index.'
';  //结果为2
echo $n;              //结果为2.因为是前增量, 会先执行$index+1的操作, 再赋值给$n;

 

PHP开发中冒泡算法的实现,相信大家已经清楚了,项目的开发应该更注重未来发展和创新能力,这样的项目才能够为我们带来更大的利益。

上一篇:PHP开发中快速排序的算法详解

下一篇:PHP开发中数据采集的深入分析

您可能感兴趣的文章

相关阅读

热门软件源码

最新软件源码下载