不错,递归是遍历树的好算法,代码也简单,几行代码就可以解决大问题,
但他受到堆栈的限制。相对而言, 使用非递的算法来遍历树,代码是要复杂些,
但非递归的算法来遍历树的话,所需的系统资源(尤其是内存)比递归少得多,
.......
SQL的话用递归也并不一定会增加次数。。。先算出条件最后再进行一次查询就可以了~
非递的算法来遍历树,代码是要复杂些,
的确呢,特别是在树比较复杂的时候特别复杂了。。。 挖哈哈,,,这里还不错居然偶们三个还可以讨论起来 偶是外行人
来热闹来地 支持呀~~~~~~ 不懂PHP~
两段代码的执行速度测试~~
今天偶然想到一个有趣的测试,使用while或者for等很容易构成循环体,而使用函数自身调用也可以构成循环体,哪种更快呢?<?php
$timestamp = time();
$mtime = explode(' ', microtime());
$starttime = $mtime + $mtime;
while($a <100){
echo $a." ";
$a++;
}
$mtime = explode(' ', microtime());
$totaltime = number_format(($mtime + $mtime - $starttime), 6);
echo "<br>".$totaltime."<br>";
?>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
0.000286
<?php
$timestamp = time();
$mtime = explode(' ', microtime());
$starttime = $mtime + $mtime;
a();
function a($a=''){
echo $a." ";
$a++;
$a<100 && a($a);
}
$mtime = explode(' ', microtime());
$totaltime = number_format(($mtime + $mtime - $starttime), 6);
echo "<br>".$totaltime."<br>";
?>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
0.000587