国产探花免费观看_亚洲丰满少妇自慰呻吟_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] 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 南澳县| 榆中县| 西城区| 潢川县| 施秉县| 阿瓦提县| 盐城市| 朝阳县| 新绛县| 石泉县| 佳木斯市| 潜江市| 织金县| 荔浦县| 雷州市| 古田县| 呼伦贝尔市| 上蔡县| 登封市| 鄂托克前旗| 虎林市| 延安市| 万安县| 油尖旺区| 连平县| 武定县| 沧州市| 吉水县| 宁海县| 古田县| 和林格尔县| 凤城市| 武乡县| 二连浩特市| 河源市| 定兴县| 缙云县| 武宁县| 博客| 永丰县| 诸暨市|