成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

探討應當如何提高PHP遞歸效率

開發 后端
PHP遞歸效率比正常的需求要低將近3倍的差距,那么我們如何才能在編碼中來提高PHP遞歸效率呢?希望大家能同過本文介紹的內容初步了解。

我們在實際代碼編程中,會發現PHP遞歸效率是非常低下的,對于程序員來說,他們必須要很好的處理PHP的遞歸。在這篇文章中我們具體向大家介紹了PHP遞歸效率的提高方法,希望對又需要的朋友有所幫助。

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

 

 

  1. function qsort(&$arr)  
  2. {  
  3. _quick_sort($arr, 0, count($arr) - 1);  
  4. }  
  5.  
  6. /**  
  7. * 采用遞歸算法的快速排序。  
  8. *  
  9. * @param array $arr 要排序的數組  
  10. * @param int $low ***的排序子段  
  11. * @param int $high ***的排序字段  
  12. */  
  13. function _quick_sort(&$arr, $low, $high)  
  14. {  
  15. $low_data = $arr[$low];  
  16. $prev_low = $low;  
  17. $prev_high = $high;  
  18. while ($low < $high)   
  19. {  
  20. while ($arr[$high] >= $low_data && $low < $high) {  
  21. $high--;  
  22. }  
  23. if ($low < $high) {  
  24. $arr[$low] = $arr[$high];  
  25. $low++;  
  26. }  
  27. while ($arr[$low] <= $low_data && $low < $high) {  
  28. $low++;  
  29. }  
  30. if ($low < $high) {  
  31. $arr[$high] = $arr[$low];  
  32. $high--;  
  33. }  
  34. }  
  35. $arr[$low] = $low_data;  
  36. if ($prev_low < $low) {  
  37. _quick_sort($arr, $prev_low, $low);  
  38. }  
  39. if ($low + 1 < $prev_high) {  
  40. _quick_sort($arr, $low + 1, $prev_high);  
  41. }  
  42. }  
  43.  
  44. function quick_sort(&$arr)  
  45. {  
  46. $stack = array();  
  47. array_push($stack, 0);  
  48. array_push($stack, count($arr) -1);  
  49. while (!empty($stack)) {  
  50. $high = array_pop($stack);  
  51. $low = array_pop($stack);  
  52. $low_data = $arr[$low];  
  53. $prev_low = $low;  
  54. $prev_high = $high;  
  55. while ($low < $high)   
  56. {  
  57. while ($arr[$high] >= $low_data && $low < $high) {  
  58. $high--;  
  59. }  
  60. if ($low < $high) {  
  61. $arr[$low] = $arr[$high];  
  62. $low++;  
  63. }  
  64. while ($arr[$low] <= $low_data && $low < $high) {  
  65. $low++;  
  66. }  
  67. if ($low < $high) {  
  68. $arr[$high] = $arr[$low];  
  69. $high--;  
  70. }  
  71. }  
  72. $arr[$low] = $low_data;  
  73. if ($prev_low < $low) {  
  74. array_push($stack, $prev_low);  
  75. array_push($stack, $low);  
  76. }  
  77. if ($low + 1 < $prev_high) {  
  78. array_push($stack, $low + 1);  
  79. array_push($stack, $prev_high);  
  80. }  
  81. }  

 

下面是PHP遞歸效率測試速度的代碼:

 

 

  1. function qsort_test1()  
  2. {  
  3. $arr = range(1, 1000);  
  4. shuffle($arr);  
  5. $arr2 = $arr;  
  6. $t1 = microtime(true);  
  7. quick_sort($arr2);  
  8. $t2 = microtime(true) - $t1;  
  9. echo "非遞歸調用的花費:" . $t2 . "\n";  
  10. $arr1 = $arr;  
  11. $t1 = microtime(true);  
  12. qsort($arr1);  
  13. $t2 = microtime(true) - $t1;  
  14. echo "遞歸調用的花費:" . $t2 . "\n";  
  15. } 

 

#t#在我的IIS 服務器上(CGI)模式,我的PHP遞歸效率測試結果是:

非遞歸調用的花費:0.036401009559631
遞歸調用的花費:0.053439617156982

 

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

 

非遞歸調用的花費:0.022789001464844
遞歸調用的花費:0.014809131622314

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

看來對PHP遞歸效率要具體問題具體分析了。

責任編輯:曹凱 來源: 博客園
相關推薦

2009-12-01 15:48:12

提高PHP運行效率

2009-11-23 10:31:25

PHP使用JSON

2009-11-30 18:59:52

PHP數組排序

2009-12-02 10:32:02

PHP語法解析函數

2023-04-03 16:21:20

數字孿生數字建筑

2015-04-16 10:15:45

PHPPHP執行效率PHP技巧

2021-07-17 06:48:09

AI人工智能

2017-09-29 10:38:30

Android

2020-04-30 16:15:04

物聯網IoT工業效率

2021-04-27 06:52:49

團隊研發效率

2023-12-29 15:24:56

物聯網通信能源管理

2011-05-30 13:28:00

PHP

2009-11-25 16:29:08

PHP刪除數組元素

2018-04-26 12:19:20

物聯網IoT交通

2014-02-28 10:26:16

Linux文本搜索ack

2024-01-16 16:47:24

數字孿生建筑信息模型

2024-03-25 11:42:50

2020-09-09 11:23:22

數據科學與分析

2009-12-11 10:41:11

PHP變量解析順序

2009-12-10 15:00:20

PHP獲取checkb
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 婷婷中文字幕 | 国产精品夜色一区二区三区 | 欧美日韩久久精品 | 亚洲精品国产综合区久久久久久久 | 欧美高清视频 | 日韩av高清 | 成人免费黄色片 | 久久99精品久久久久久国产越南 | 亚洲欧美国产毛片在线 | 成年人黄色小视频 | 亚洲高清在线 | 久久久久亚洲 | www免费视频 | 精品国产乱码久久久久久老虎 | www.亚洲.com| xxxxx免费视频 | 欧美日韩国产精品一区 | 欧产日产国产精品视频 | 日韩精品一区二区三区在线观看 | 成人性生交大片免费看中文带字幕 | 国产一区不卡 | 成人黄视频在线观看 | 欧美精品二区 | 欧美精品在线一区 | 欧美一区二区三区在线看 | 人碰人操| 全部免费毛片在线播放网站 | 97国产精品视频人人做人人爱 | 国产一二三区在线 | 久久新视频 | 久久麻豆精品 | 亚洲成人av在线播放 | 亚洲韩国精品 | 欧美一级特黄aaa大片在线观看 | 欧美日韩综合一区 | 亚洲一区二区三区在线免费观看 | 中文字幕在线视频精品 | 精品国产高清一区二区三区 | 激情五月综合 | 在线黄色影院 | 成人午夜免费在线视频 |