PHP(超文本預處理器)是一種廣泛用於 Web 開發的伺服器端腳本語言。它允許開發人員將程式碼嵌入 HTML 文件中,從而能夠創建動態網頁並與資料庫互動。 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
程式碼實作了 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中文網其他相關文章!