天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

PHP 遞歸效率分析

而且是差了3倍的效率。所以,php中的遞歸一定要小心的對(duì)待。
最近寫(xiě)了一個(gè)快速排序的算法,發(fā)現(xiàn)php中的遞歸效率不能一刀切,在各種不同的服務(wù)器中,可能會(huì)表現(xiàn)不一樣。
復(fù)制代碼 代碼如下:
function qsort(&$arr)
{
_quick_sort($arr, 0, count($arr) - 1);
}

/**
* 采用遞歸算法的快速排序。
*
* @param array $arr 要排序的數(shù)組
* @param int $low 最低的排序子段
* @param int $high 最高的排序字段
*/
function _quick_sort(&$arr, $low, $high)
{
$low_data = $arr[$low];
$prev_low = $low;
$prev_high = $high;
while ($low < $high)
{
while ($arr[$high] >= $low_data && $low < $high) {
$high--;
}
if ($low < $high) {
$arr[$low] = $arr[$high];
$low++;
}
while ($arr[$low] <= $low_data && $low < $high) {
$low++;
}
if ($low < $high) {
$arr[$high] = $arr[$low];
$high--;
}
}
$arr[$low] = $low_data;
if ($prev_low < $low) {
_quick_sort($arr, $prev_low, $low);
}
if ($low + 1 < $prev_high) {
_quick_sort($arr, $low + 1, $prev_high);
}
}

function quick_sort(&$arr)
{
$stack = array();
array_push($stack, 0);
array_push($stack, count($arr) -1);
while (!empty($stack)) {
$high = array_pop($stack);
$low = array_pop($stack);
$low_data = $arr[$low];
$prev_low = $low;
$prev_high = $high;
while ($low < $high)
{
while ($arr[$high] >= $low_data && $low < $high) {
$high--;
}
if ($low < $high) {
$arr[$low] = $arr[$high];
$low++;
}
while ($arr[$low] <= $low_data && $low < $high) {
$low++;
}
if ($low < $high) {
$arr[$high] = $arr[$low];
$high--;
}
}
$arr[$low] = $low_data;
if ($prev_low < $low) {
array_push($stack, $prev_low);
array_push($stack, $low);
}
if ($low + 1 < $prev_high) {
array_push($stack, $low + 1);
array_push($stack, $prev_high);
}
}
}

下面是測(cè)試速度的代碼:
復(fù)制代碼 代碼如下:
function qsort_test1()
{
$arr = range(1, 1000);
shuffle($arr);
$arr2 = $arr;
$t1 = microtime(true);
quick_sort($arr2);
$t2 = microtime(true) - $t1;
echo "非遞歸調(diào)用的花費(fèi):" . $t2 . "/n";
$arr1 = $arr;
$t1 = microtime(true);
qsort($arr1);
$t2 = microtime(true) - $t1;
echo "遞歸調(diào)用的花費(fèi):" . $t2 . "/n";


在我的IIS 服務(wù)器上(CGI)模式,我的測(cè)試結(jié)果是:
非遞歸調(diào)用的花費(fèi):0.036401009559631
遞歸調(diào)用的花費(fèi):0.053439617156982
在我的Apache 服務(wù)器上,我的測(cè)試結(jié)果是:
非遞歸調(diào)用的花費(fèi):0.022789001464844
遞歸調(diào)用的花費(fèi):0.014809131622314
結(jié)果完全相反,而php的版本是一樣的。
看來(lái)對(duì)遞歸的效率要具體問(wèn)題具體分析了。

php技術(shù)PHP 遞歸效率分析,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 欧洲美女人 一级毛片 | 亚洲高清视频免费 | 99久视频只有精品2019 | 伊人青青久久 | 久久精品中文騷妇女内射 | 麻豆产精品一二三产区区 | 最美女人体内射精一区二区 | 午夜福利体验试看120秒 | 国产GV无码A片在线观看 | 精品视频免费在线 | 狠狠干狠狠色 | 亚洲不卡高清免v无码屋 | 第一精品福利导福航 | 久久精品国产久精国产果冻传媒 | 久久精品中文騷妇女内射 | 日韩一级精品久久久久 | 日本久久久久久久做爰片日本 | 狠狠婷婷综合久久久久久 | 天堂岛www | 两性色午夜视频免费国产 | 嫩草国产精品99国产精品 | 野花韩国高清完整版在线观看5 | 久久久久久久久亚洲 | 龙泽罗拉av | 朝鲜黄色录像 | 超碰97 总站 中文字幕 | 哇嘎在线精品视频在线观看 | 午夜噜噜噜私人影院在线播放 | 国产精品三级在线观看 | 穿白丝袜边走边尿白丝袜 | 口工漫画r18全彩啪啪 | 国产又粗又猛又爽黄老大爷 | 超碰视频在线观看 | 最近中文字幕MV免费高清视频8 | 国产av免费观看日本 | 国产成久久免费精品AV片天堂 | 一个色综合久久 | 久久re热在线视频精69 | 一个人在线观看视频免费 | 欧美AAAA片免费播放观看 | 一本色道久久综合亚洲AV蜜桃 |