国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

PHP使用遞歸生成子數組(代碼實例)

2024-09-04 11:46:47
字體:
來源:轉載
供稿:網友

給定一個數組,使用遞歸生成給定數組的所有可能的子數組。本篇文章就將給大家介紹如何用PHP來實現此功能。

例子:

輸入:[1,2,3]

輸出:[1],[1,2],[2],[1,2,3],[2,3],[3]

輸入:[1,2]

輸出:[1],[1,2],[2]

方法:

我們使用兩個指針start和end來維護數組的起點和終點,并按照下面給出的步驟操作:

1.如果我們已經到達數組的末尾,就停止

2.如果start大于end,則增加結束索引

3.從索引start到end打印子數組并增加起始索引

以下是上述方法的PHP代碼實現示例:

  1. <?php  
  2.  
  3. // 使用遞歸函數為給定數組打印所有可能的子數組 
  4.  
  5. function printSubArrays($arr$start$end)  
  6.  
  7. {   
  8.  
  9.     // 如果我們已經到達數組的末尾,就停止 
  10.  
  11.     if ($end == count($arr))  
  12.  
  13.         return;  
  14.  
  15.         
  16.  
  17.     // 增加端點并從0開始 
  18.  
  19.     else if ($start > $end)  
  20.  
  21.         return printSubArrays($arr, 0,   
  22.  
  23.                               $end + 1);  
  24.  
  25.             
  26.  
  27.     // 打印子數組并增加起始點 
  28.  
  29.     else 
  30.  
  31.     {  
  32.  
  33.     echo "[";  
  34.  
  35.     for($i = $start$i < $end + 1; $i++)  
  36.  
  37.     {  
  38.  
  39.         echo $arr[$i];  
  40.  
  41.         if($i != $end)  
  42.  
  43.         echo ", ";  
  44.  
  45.     }  
  46.  
  47.     echo "]/n";  
  48.  
  49.         return printSubArrays($arr$start + 1,   
  50.  
  51.                                     $end);  
  52.  
  53.     }  
  54.  
  55. }   
  56.  
  57.     
  58.  
  59. $arr = array(1, 2, 3);  
  60.  
  61. printSubArrays($arr, 0, 0); 

輸出:

  1. [1] 
  2.  
  3. [1,2] 
  4.  
  5. [2] 
  6.  
  7. [1,2,3] 
  8.  
  9. [2,3] 
  10.  
  11. [3] 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 平果县| 芜湖县| 正阳县| 寻乌县| 桑日县| 绥棱县| 汉川市| 贡觉县| 伽师县| 新丰县| 龙陵县| 罗江县| 德昌县| 临清市| 蒲城县| 樟树市| 深水埗区| 常宁市| 环江| 邵武市| 泸溪县| 扎鲁特旗| 北碚区| 固始县| 垦利县| 来凤县| 朔州市| 宜兰县| 和田县| 九寨沟县| 绥中县| 抚州市| 大悟县| 肥城市| 莲花县| 彝良县| 兴海县| 宜黄县| 永德县| 兴安县| 南阳市|