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

जावास्क्रिप्ट में ब्लॉक खोज को लागू करना

<घंटा/>

खोज ब्लॉक करें

बाइनरी सर्च की तरह, ब्लॉक सर्च भी सॉर्ट किए गए सरणियों के लिए एक खोज एल्गोरिथ्म है। मूल विचार यह है कि सभी तत्वों को खोजने के स्थान पर निश्चित चरणों से आगे बढ़कर या कुछ तत्वों को छोड़ कर कम तत्वों (रैखिक खोज की तुलना में) की जांच की जाए।

उदाहरण के लिए

मान लीजिए कि हमारे पास लंबाई n की एक सरणी है और आकार m का ब्लॉक (कूदने के लिए) है। फिर हम अनुक्रमणिका arr[0], arr[m], arr[2 * m], ..., arr[k * m] इत्यादि पर खोज करते हैं।

एक बार जब हमें अंतराल arr[k * m]

इस एल्गोरिथम की समय जटिलता है -

O(√n)

उदाहरण

निम्नलिखित कोड है -

const arr = [1, 4, 6, 7, 9, 12, 15, 16, 17, 23, 25, 26, 27, 31];
const target = 25;
const blockSearch = (arr = [], target) => {
   let { length: len } = arr;
   let step = Math.floor(Math.sqrt(len));
   let blockStart = 0
   let currentStep = step;
   while (arr[Math.min(currentStep, len) - 1] < target) {
      blockStart = currentStep;
      currentStep += step;
      if (blockStart >= len)
         return -1;
   }
   while (arr[blockStart] < target){
      blockStart++;
      if (blockStart == Math.min(currentStep, len))
         return -1;
   }
   if (arr[blockStart] == target)
      return blockStart
   else
      return -1;
};
console.log(blockSearch(arr, target));

आउटपुट

कंसोल पर आउटपुट निम्नलिखित है -

10

  1. जावास्क्रिप्ट में स्कोपिंग को ब्लॉक करें।

    ब्लॉक स्कोप दो {घुंघराले ब्रेसिज़} के बीच का क्षेत्र है जो लूप्स के बीच हो सकता है, यदि कंडीशन या स्विच स्टेटमेंट। ES2015 में पेश किए गए let और const हमें ब्लॉक स्कोप्ड वेरिएबल बनाने की अनुमति देते हैं जिन्हें केवल उन ब्लॉक के अंदर ही एक्सेस किया जा सकता है। जावास्क्रिप्ट में ब्लॉक स्कोपिंग दिखाने

  1. क्या जावास्क्रिप्ट ब्लॉक स्कोप का समर्थन करता है?

    जावास्क्रिप्ट केवल उन वेरिएबल्स के लिए ब्लॉक स्कोप का समर्थन करता है जिन्हें let या constkeyword का उपयोग करके घोषित किया गया था। वेरिएबल्स को var सपोर्ट फंक्शन स्कोप का उपयोग करके घोषित किया गया है लेकिन स्कोप को ब्लॉक नहीं किया गया है। जावास्क्रिप्ट में ब्लॉक स्कोप प्रदर्शित करने के लिए कोड निम्न

  1. जावास्क्रिप्ट में रैखिक खोज को लागू करना

    जावास्क्रिप्ट में रैखिक खोज को लागू करने के लिए कोड निम्नलिखित है - उदाहरण <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Docu