Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> सी प्रोग्रामिंग

पैटर्न खोज के लिए Naive एल्गोरिथम के लिए सी प्रोग्राम

सी में पैटर्न मिलान - हमें यह पता लगाना है कि क्या कोई स्ट्रिंग किसी अन्य स्ट्रिंग में मौजूद है, उदाहरण के तौर पर, स्ट्रिंग "एल्गोरिदम" स्ट्रिंग "naive algorithm" के भीतर मौजूद है। यदि यह पाया जाता है, तो इसका स्थान (यानी जिस स्थिति में यह मौजूद है) है प्रदर्शित होता है। हम एक ऐसा फ़ंक्शन बनाते हैं जो 2 वर्ण सरणी प्राप्त करता है और यदि मिलान होता है तो स्थिति लौटाता है अन्यथा -1 देता है।

Input: txt = "HERE IS A NICE CAP"
   pattern = "NICE"
Output: Pattern found at index 10
Input: txt = "XYZXACAADXYZXYZX"
   pattern = "XYZX"
Output: Pattern found at index 0
   Pattern found at index 9
   Pattern found at index 12
. पर पाया गया

हम इस समस्या को Naive Pattern Searching से हल कर रहे हैं। यह एल्गोरिथम छोटे पाठों के लिए उपयोगी है। Naive यह देखने का एक सरल और अक्षम तरीका है कि एक स्ट्रिंग दूसरे के भीतर कहीं भी होती है, हर जगह की जांच करना, एक-एक करके, यह जांचने के लिए कि क्या यह वहां है।

Naive Algorithm की समय जटिलता O(mn) है, जहां m खोजे जाने वाले पैटर्न का आकार है और n कंटेनर स्ट्रिंग का आकार है।

कंप्यूटर विज्ञान में पैटर्न खोज एक बहुत ही महत्वपूर्ण समस्या है। जब भी हम नोटपैड/वर्ड फ़ाइल या ब्राउज़र या डेटाबेस या कुछ जानकारी में एक स्ट्रिंग की तलाश करते हैं, तो खोज परिणामों को दिखाने के लिए पैटर्न खोज एल्गोरिदम का उपयोग किया जाता है।

एल्गोरिदम

naive_algorithm (पैटर्न, टेक्स्ट)

इनपुट - टेक्स्ट और पैटर्न

आउटपुट − स्थान, जहां पैटर्न टेक्स्ट में मौजूद है

Start
   pat_len := pattern Size
   str_len := string size
   for i := 0 to (str_len - pat_len), do
      for j := 0 to pat_len, do
         if text[i+j] ≠ pattern[j], then
         break
   if j == patLen, then
   display the position i, as there pattern found
End

उदाहरण

#include <stdio.h>
#include <string.h>
int main (){
   char txt[] = "tutorialsPointisthebestplatformforprogrammers";
   char pat[] = "a";
   int M = strlen (pat);
   int N = strlen (txt);
   for (int i = 0; i <= N - M; i++){
      int j;
      for (j = 0; j < M; j++)
         if (txt[i + j] != pat[j])
      break;
      if (j == M)
         printf ("Pattern matches at index %d \n", i);
   }
   return 0;
}

आउटपुट

Pattern matches at 6
Pattern matches at 25
Pattern matches at 39

  1. हेक्सागोनल पैटर्न के लिए सी कार्यक्रम

    हमें एक पूर्णांक n दिया गया है और कार्य हेक्सागोनल पैटर्न उत्पन्न करना और अंतिम आउटपुट प्रदर्शित करना है। उदाहरण Input-: n=5 Output-: Input-: n = 4 Output-: दिए गए कार्यक्रम में हम जिस दृष्टिकोण का उपयोग कर रहे हैं वह इस प्रकार है - उपयोगकर्ता से n नंबर डालें पूरे पैटर्न को तीन भागों में विभाज

  1. सी एक समांतर चतुर्भुज की परिधि के लिए कार्यक्रम

    हमें समांतर चतुर्भुज की भुजाएँ दी गई हैं और कार्य एक समांतर चतुर्भुज की परिधि को उसके दिए गए पक्षों के साथ उत्पन्न करना और परिणाम प्रदर्शित करना है समांतर चतुर्भुज क्या है? समांतर चतुर्भुज एक प्रकार का द्विघात है जिसमें - विपरीत पक्ष समानांतर विपरीत कोण बराबर बहुभुज के विकर्ण एक दूसरे को समद्विभाज

  1. इष्टतम पृष्ठ प्रतिस्थापन एल्गोरिथम के लिए C++ प्रोग्राम

    पृष्ठ संख्या और पृष्ठ आकार दिया गया; कार्य हिट और मिस की संख्या का पता लगाना है जब हम इष्टतम पेज रिप्लेसमेंट एल्गोरिथम का उपयोग करके किसी पृष्ठ को मेमोरी ब्लॉक आवंटित करते हैं। इष्टतम पृष्ठ प्रतिस्थापन एल्गोरिथम क्या है? इष्टतम पृष्ठ प्रतिस्थापन एल्गोरिथ्म एक पृष्ठ प्रतिस्थापन एल्गोरिथ्म है। पेज