首頁  >  文章  >  後端開發  >  PHP使用遞歸生成子數組(程式碼實例)

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

藏色散人
藏色散人原創
2019-03-20 14:31:562620瀏覽

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

給定一個數組,使用遞歸產生給定數組的所有可能的子數組。本篇文章將介紹如何用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程式碼實作範例:

<?php 
// 使用递归函数为给定数组打印所有可能的子数组
function printSubArrays($arr, $start, $end) 
{  
    // 如果我们已经到达数组的末尾,就停止
    if ($end == count($arr)) 
        return; 
      
    // 增加端点并从0开始
    else if ($start > $end) 
        return printSubArrays($arr, 0,  
                              $end + 1); 
          
    // 打印子数组并增加起始点
    else
    { 
    echo "["; 
    for($i = $start; $i < $end + 1; $i++) 
    { 
        echo $arr[$i]; 
        if($i != $end) 
        echo ", "; 
    } 
    echo "]\n"; 
        return printSubArrays($arr, $start + 1,  
                                    $end); 
    } 
}  
  
$arr = array(1, 2, 3); 
printSubArrays($arr, 0, 0);

輸出:

[1]
[1,2]
[2]
[1,2,3]
[2,3]
[3]

時間複雜性: PHP使用遞歸生成子數組(程式碼實例)

相關推薦:《PHP教學

本篇文章是關於PHP使用遞迴產生子陣列的方法介紹,希望對需要的朋友有所幫助!

以上是PHP使用遞歸生成子數組(程式碼實例)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn