奶头挺立呻吟高潮av全片,成人试看120秒体验区,性欧美极品v,A片高潮抽搐揉捏奶头视频

php語言

PHP遞歸效率分析

時間:2025-03-09 14:19:37 php語言 我要投稿
  • 相關推薦

PHP遞歸效率分析

  而且是差了3倍的效率。所以,PHP中的遞歸一定要小心的對待。就跟隨百分網小編一起去了解下吧,想了解更多相關信息請持續(xù)關注我們應屆畢業(yè)生考試網!

  最近寫了一個快速排序的算法,發(fā)現(xiàn)PHP中的遞歸效率不能一刀切,在各種不同的服務器中,可能會表現(xiàn)不一樣。

  復制代碼 代碼如下:

  function qsort(&$arr)

  {

  _quick_sort($arr, 0, count($arr) - 1);

  }

  /**

  * 采用遞歸算法的快速排序。

  *

  * @param array $arr 要排序的數組

  * @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);

  }

  }

  }

  下面是測試速度的代碼:

  復制代碼 代碼如下:

  function qsort_test1()

  {

  $arr = range(1, 1000);

  shuffle($arr);

  $arr2 = $arr;

  $t1 = microtime(true);

  quick_sort($arr2);

  $t2 = microtime(true) - $t1;

  echo "非遞歸調用的花費:" . $t2 . "n";

  $arr1 = $arr;

  $t1 = microtime(true);

  qsort($arr1);

  $t2 = microtime(true) - $t1;

  echo "遞歸調用的花費:" . $t2 . "n";

  }

  在我的IIS 服務器上(CGI)模式,我的測試結果是:

  非遞歸調用的花費:0.036401009559631

  遞歸調用的花費:0.053439617156982

  在我的Apache 服務器上,我的測試結果是:

  非遞歸調用的花費:0.022789001464844

  遞歸調用的花費:0.014809131622314

  結果完全相反,而PHP的版本是一樣的。

  看來對遞歸的效率要具體問題具體分析了。</p

【PHP遞歸效率分析】相關文章:

php遞歸遍歷刪除文件的方法10-25

php遞歸遍歷多維數組的方法10-06

PHP如何遞歸實現(xiàn)json類06-27

解讀php全排列遞歸算法代碼07-07

php遞歸函數三種方式11-07

php開發(fā)效率提高的方法11-02

PHP使用遞歸算法無限遍歷數組示例05-20

php遞歸創(chuàng)建和刪除文件夾的代碼09-21

用php自定義函數之遞歸刪除文件及目錄09-13

主站蜘蛛池模板: 曲沃县| 托克托县| 青海省| 尉氏县| 榆社县| 施甸县| 清丰县| 屯门区| 化州市| 呼玛县| 龙陵县| 南投市| 湖北省| 临夏市| 沁源县| 溧阳市| 常宁市| 宜良县| 九龙城区| 海淀区| 沙湾县| 怀来县| 东乡县| 潼南县| 武威市| 威宁| 迁西县| 遂昌县| 庐江县| 仙游县| 融水| 滦南县| 元谋县| 会泽县| 吉首市| 邛崃市| 师宗县| 高安市| 海安县| 乌什县| 丁青县|