भोले पैटर्न खोज अन्य पैटर्न खोज एल्गोरिदम के बीच सबसे सरल तरीका है। यह पैटर्न के लिए मुख्य स्ट्रिंग के सभी वर्णों की जाँच करता है। यह एल्गोरिथम छोटे पाठों के लिए सहायक है। इसे किसी पूर्व-प्रसंस्करण चरणों की आवश्यकता नहीं है। हम स्ट्रिंग के लिए एक बार जाँच करके सबस्ट्रिंग पा सकते हैं। यह ऑपरेशन करने के लिए अतिरिक्त स्थान भी नहीं घेरता है।
भोले पैटर्न खोज पद्धति की समय जटिलता O(m*n) है। m पैटर्न का आकार है और n मुख्य स्ट्रिंग का आकार है।
इनपुट और आउटपुट
इनपुट:मुख्य स्ट्रिंग:"ABAAABCDBBABCDDEBCABC", पैटर्न:"ABC"आउटपुट:स्थिति पर पाया गया पैटर्न:स्थान पर 4Pattern मिला:10Pattern स्थिति में मिला:18
एल्गोरिदम
naivePatternSearch(pattern, text)
इनपुट - टेक्स्ट और पैटर्न
आउटपुट - स्थान, जहां पाठ में पैटर्न मौजूद हैं
पेटलेन शुरू करें:=पैटर्न आकार strLen:=i के लिए स्ट्रिंग आकार:=0 से (strLen - patLen), j के लिए करें:=0 से patLen, यदि टेक्स्ट [i + j] पैटर्न [j] करें, तो करें यदि j ==patLen हो तो लूप को तोड़ें, फिर स्थिति i प्रदर्शित करें, जैसा कि वहां पैटर्न मिला हैEnd
उदाहरण
#includeनेमस्पेस का उपयोग कर std;void naivePatternSearch(string mainString, string pattern, int array[], int *index) { int patLen =pattern.size(); int strLen =mainString.size (); for(int i =0; i<=(strLen - patLen); i++) { int j; for(j =0; j आउटपुट
पैटर्न स्थिति में मिला:4Pattern स्थिति में मिला:10Pattern स्थिति में मिला:18