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

JavaScript में क्रमबद्ध 2-D सरणी में खोज करना


हमें एक JavaScript फ़ंक्शन लिखना है जो पहले तर्क के रूप में संख्याओं की सरणियों की एक सरणी और दूसरे तर्क के रूप में एक संख्या लेता है। उप-सरणियों में संख्याएं बढ़ते क्रम में क्रमबद्ध होती हैं और किसी पूर्ववर्ती उप-सरणी का कोई भी तत्व किसी उत्तरवर्ती उप-सरणी के किसी भी तत्व से बड़ा नहीं होता।

फ़ंक्शन को दूसरे तर्क के रूप में प्रदान किए गए तत्व को क्रमबद्ध सरणी की सरणियों में खोजने के लिए बाइनरी खोज एल्गोरिदम का उपयोग करना चाहिए।

यदि तत्व मौजूद है तो फ़ंक्शन को true वापस करना चाहिए, अन्यथा false।

उदाहरण के लिए -

यदि इनपुट सरणी है -

const arr = [
  [2, 6, 9, 11],
  [13, 16, 18, 19, 21],
  [24, 26, 28, 31]
];
const num = 21;

तो आउटपुट होना चाहिए -

const output = true;

उदाहरण

निम्नलिखित कोड देखें:

const arr = [
  [2, 6, 9, 11],
  [13, 16, 18, 19, 21],
  [24, 26, 28, 31]
];
const num = 21;

const search2D = (array = [], target) => {
  const h = array.length;
  const w = h > 0 ? array[0].length : 0;
  if (h === 0 || w === 0) { return false; }
  const arr = getArr();
  if (!arr) { return false; }
  return binarySearch(arr, target) !== null;

  function getArr() {
    for (let i = 0; i < h; i++) {
      let arr = array[i];
      if (arr[0] <= target && target <= arr[arr.length - 1]) {
        return arr;
      }
    }
    return null;
  }

  function binarySearch(arr, t) {
    let left = 0;
    let right = arr.length - 1;
    while (left <= right) {
      if (arr[left] === t) { return left; }
      if (arr[right] === t) { return right; }
      let mid = Math.floor((left + right) / 2);
      if (arr[mid] === t) { return mid; }
      if (arr[mid] < t) { left = mid + 1; }
      else if (arr[mid] > t) { right = mid - 1; }
    }
    return null;
  }
};

console.log(search2D(arr, num));

आउटपुट

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

true

  1. JavaScript Array.shift(): पहला तत्व हटाएं JavaScript Array.shift(): पहला तत्व हटाएं

    Array.prototype.shift() मेथड एरे से पहला तत्व हटाता है, उस तत्व को लौटाता है, और शेष सभी तत्वों के इंडेक्स को 1 से घटा देता है। यह एरे की लंबाई बदल देता है। उदाहरण { const removed = arr.shift(); fillEle.innerHTML = `हटाया गया: ${removed}<br>शेष: ` + arr.join(, ); });

  1. JavaScript Array.reverse(): एरे को उल्टा करें JavaScript Array.reverse(): एरे को उल्टा करें

    Array.prototype.reverse() मेथड एरे के तत्वों के क्रम को स्थानांतरित (in-place) उलट देता है। पहला तत्व अंतिम बन जाता है और अंतिम पहला। यह मूल एरे को बदल देता है और उसी एरे का संदर्भ लौटाता है। उदाहरण { arr.reverse(); fillEle.innerHTML = उल्टा: + arr.join(, ); }); </scrip

  1. जावास्क्रिप्ट में ऐरे डीस्ट्रक्चरिंग जावास्क्रिप्ट में ऐरे डीस्ट्रक्चरिंग

    परिचय डीस्ट्रक्चरिंग असाइनमेंट (ES2015) ऐरे से मानों को अलग-अलग वेरिएबल्स में अनपैक करने का एक संक्षिप्त सिंटैक्स है। यह पठनीयता में सुधार करता है और मैन्युअल इंडेक्स एक्सेस की आवश्यकता को कम करता है। उदाहरण निम्न कोड जावास्क्रिप्ट में ऐरे डीस्ट्रक्चरिंग के लिए है: <!DOCTYPE html> <html