Maison >développement back-end >tutoriel php >PHP utilise la récursivité pour générer des sous-tableaux (exemple de code)

PHP utilise la récursivité pour générer des sous-tableaux (exemple de code)

藏色散人
藏色散人original
2019-03-20 14:31:562666parcourir

PHP utilise la récursivité pour générer des sous-tableaux (exemple de code)

Étant donné un tableau, générez tous les sous-tableaux possibles du tableau donné en utilisant la récursivité. Cet article vous présentera comment utiliser PHP pour implémenter cette fonction.

Exemple :

输入:[1,2,3]
输出:[1],[1,2],[2],[1,2,3],[2,3],[3]
输入:[1,2]
输出:[1],[1,2],[2]

Méthode :

On utilise deux pointeurs start et end pour maintenir le début et la fin du tableau et suivre le ci-dessous Les étapes indiquées sont :

1. Si nous avons atteint la fin du tableau, arrêtez

2 Si le début est supérieur à la fin, augmentez l'index de fin

. 3. De l'index du début à la fin Imprimez le sous-tableau et incrémentez l'index de départ

Ce qui suit est un exemple d'implémentation de code PHP de la méthode ci-dessus :

<?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);

Sortie :

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

Complexité temporelle : PHP utilise la récursivité pour générer des sous-tableaux (exemple de code)

Recommandations associées : "Tutoriel PHP"

Cet article est une introduction à la méthode de génération de sous-tableaux par récursivité en PHP, j'espère que cela sera utile aux amis dans le besoin !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn