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

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

WBOY
WBOY原創
2024-08-28 10:31:201045瀏覽

PHP Program for Naive Algorithm for Pattern Searching

什麼是 PHP?

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

什麼是 PHP 中的樸素演算法?

樸素演算法,也稱為暴力演算法,是一種簡單的模式搜尋演算法,用於尋找文字中模式的出現。它被稱為“naive”,因為它沒有採用任何複雜的資料結構或先進技術。

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

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

範例

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

代碼說明

程式碼實作了 PHP 中模式搜尋的 Naive 演算法。 searchPattern 函數採用兩個參數:$text(輸入文字)和 $pattern(要搜尋的模式)。在函數內,確定文字和模式的長度使用 strlen 函數。建立一個名為 $foundIndexes 的空數組來儲存在文字中找到模式的索引。

然後,函數使用 for 循環迭代文本,將每個字元與模式中的相應字元進行比較。如果找到匹配,它將繼續比較後續字符,直到整個模式匹配或發生不匹配。如果找到完全匹配,則起始索引將會加入 $foundIndexes 陣列中。

在範例用法中,使用範例文字「ABCABCABCABC」和模式「CA」呼叫該函數。在文字中找到模式“CA”的結果索引將列印為輸出。總的來說,程式碼演示了 PHP 中 Naive 演算法的基本實現,在給定文字中搜尋模式並傳回該模式出現的索引。

結論

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

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

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