首頁  >  文章  >  後端開發  >  PHP程式的樸素演算法用於模式搜尋

PHP程式的樸素演算法用於模式搜尋

WBOY
WBOY轉載
2023-08-22 10:57:061435瀏覽

PHP程式的樸素演算法用於模式搜尋

PHP是什麼?

PHP(超文本預處理器)是一種廣泛用於伺服器端腳本語言的Web開發語言。它允許開發人員在HTML檔案中嵌入程式碼,從而實現動態網頁的建立和與資料庫的互動。 PHP以其簡單性、多功能性和與流行資料庫的廣泛整合能力而聞名。它提供了廣泛的擴展功能,並擁有龐大的開發者社區,確保有豐富的資源和支持

什麼是PHP中的天真演算法?

The Naive algorithm, also known as the Brute Force algorithm, is a simple pattern searching algorithm used to find occurrences of a pattern within a text. It is called "naive" because it do not itated ition solevor isconc​​is ition it dom .

在PHP的上下文中,Naive演算法被實作為一個函數,它接受兩個參數:要搜尋的文字和要搜尋的模式。演算法透過遍歷文本,將每個字元與模式中的相應字元進行比較。如果找到不匹配的字符,它將移動到文本中的下一個字符,並重新開始比較。如果找到匹配的字符,它將繼續比較後續字符,直到整個模式匹配或出現不匹配

PHP程式用於Naive演算法進行模式搜尋

範例

#
<?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

程式碼解釋

The code implements the Naive algorithm for pattern searching in PHP. The searchPattern function takes two parameters: $text (the input text) and $pattern (the pattern to search for ).Within the function, the lengths of the text and pattern are determined using the strlen function. An empty array called $foundIndexes is created to store the indexes where the pattern is found in the text.

The function then iterates through the text using a for loop, comparing each character with the corresponding character in the pattern. If a match is found, it continues comparing subsequent characters until pattern the it continues comparing subsequent characters until pattern the curire. a complete match is found, the starting index is added to the $foundIndexes array.

在範例用法中,函數在呼叫時使用了一個範例文字"ABCABCABCABCABC"和一個模式"CA"。輸出結果是模式"CA"在文字中被找到的索引。總體而言,這段程式碼展示了PHP中Naive演算法的基本實現,用於在給定文字中搜尋模式並返回模式出現的索引

結論

提供的PHP程式實作了Naive演算法用於模式搜尋。它透過逐個比較字元來在文本中搜尋給定的模式。該演算法遍歷文字並在每個位置檢查是否匹配。如果找到匹配項,它將起始索引新增到陣列中。程式傳回所有找到的索引,或指示未找到模式。雖然Naive演算法的時間複雜度為O(m * n),其中m是模式長度,n是文字長度,但它作為PHP中小規模模式搜尋任務的基本和直接的方法。

以上是PHP程式的樸素演算法用於模式搜尋的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除