Maison > Article > développement back-end > Programme PHP pour un algorithme naïf pour la recherche de modèles
PHP (Hypertext Preprocessor) est un langage de script côté serveur largement utilisé pour le développement Web. Il permet aux développeurs d'intégrer du code dans des fichiers HTML, permettant la création de pages Web dynamiques et d'interactions avec des bases de données. PHP est connu pour sa simplicité, sa polyvalence et ses capacités d'intégration étendues avec les bases de données populaires. Il propose une large gamme d'extensions et dispose d'une large communauté de développeurs, garantissant des ressources et un support suffisants.
L'algorithme Naive, également connu sous le nom d'algorithme Brute Force, est un simple algorithme de recherche de modèles utilisé pour trouver les occurrences d'un modèle dans un texte. Il est qualifié de « naïf » car il n’utilise aucune structure de données sophistiquée ni technique avancée.
Dans le contexte de PHP, l'algorithme Naive est implémenté comme une fonction qui prend deux paramètres : le texte dans lequel rechercher et le modèle à rechercher. L'algorithme parcourt le texte, comparant chaque caractère avec le caractère correspondant dans le modèle. Si une incompatibilité est trouvée, il passe au caractère suivant dans le texte et recommence la comparaison. Si une correspondance est trouvée, il continue de comparer les caractères suivants jusqu'à ce que le modèle entier corresponde ou qu'une incompatibilité se produise.
<?php function searchPattern($text, $pattern) { $textLength = strlen($text); $patternLength = strlen($pattern); $foundIndexes = array(); // Array to store the found indexes // Iterate through the text for ($i = 0; $i <= $textLength - $patternLength; $i++) { $j = 0; // Check for a match at the current position while ($j < $patternLength && $text[$i + $j] == $pattern[$j]) { $j++; } // If a match is found, add the starting index to the array if ($j == $patternLength) { $foundIndexes[] = $i; } } return $foundIndexes; } // Example usage $text = "ABCABCABCABC"; $pattern = "CA"; $indexes = searchPattern($text, $pattern); if (!empty($indexes)) { echo "Pattern found at indexes: " . implode(", ", $indexes); } else { echo "Pattern not found"; } ?>
Pattern found at indexes: 2, 5, 8
Le code implémente l'algorithme Naive pour la recherche de modèles en PHP. La fonction searchPattern prend deux paramètres : $text (le texte saisi) et $pattern (le motif à rechercher). Dans la fonction, les longueurs du texte et du motif sont déterminées à l'aide de la fonction strlen. Un tableau vide appelé $foundIndexes est créé pour stocker les index où se trouve le modèle dans le texte.
La fonction parcourt ensuite le texte à l'aide d'une boucle for, en comparant chaque caractère avec le caractère correspondant dans le modèle. Si une correspondance est trouvée, il continue de comparer les caractères suivants jusqu'à ce que le modèle entier corresponde ou qu'une incompatibilité se produise. Si une correspondance complète est trouvée, l'index de départ est ajouté au tableau $foundIndexes.
Dans l'exemple d'utilisation, la fonction est appelée avec un exemple de texte "ABCABCABCABC" et un modèle "CA". Les index résultants où le motif « CA » se trouve dans le texte sont imprimés en sortie. Dans l'ensemble, le code démontre une implémentation de base de l'algorithme Naive en PHP, recherchant un modèle dans un texte donné et renvoyant les index où le modèle apparaît.
Le programme PHP fourni implémente l'algorithme Naive pour la recherche de modèles. Il recherche un modèle donné dans un texte en comparant les caractères un par un. L'algorithme parcourt le texte et vérifie une correspondance à chaque position. Si une correspondance est trouvée, il ajoute l'index de départ à un tableau. Le programme renvoie tous les index trouvés ou indique si le modèle n'est pas trouvé. Bien que l'algorithme Naive ait une complexité temporelle de O(m * n), où m est la longueur du modèle et n est la longueur du texte, il constitue une approche simple et simple pour les tâches de recherche de modèles à petite échelle en PHP.
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!