समस्या
हमें एक जावास्क्रिप्ट फ़ंक्शन लिखने की आवश्यकता होती है जो संख्याओं की एक क्रमबद्ध सरणी (बढ़ते क्रम), एआर, पहले तर्क के रूप में, और दूसरे तर्क के रूप में एक लक्ष्य संख्या लेता है। हमारे फ़ंक्शन को बाइनरी सर्च एल्गोरिथम का उपयोग करके सरणी गिरफ्तारी में लक्ष्य खोजना चाहिए क्योंकि सरणी को सॉर्ट किया गया है।
यदि लक्ष्य मौजूद है, तो हमें उसका सूचकांक वापस करना चाहिए, अन्यथा हमें -1 वापस करना चाहिए।
उदाहरण के लिए, यदि फ़ंक्शन का इनपुट है
इनपुट
const arr = [3, 5, 7, 9, 11, 13, 15, 16, 18, 21, 24, 25, 28]; const target = 13;
आउटपुट
const output = 5;
उदाहरण
निम्नलिखित कोड है -
const arr = [3, 5, 7, 9, 11, 13, 15, 16, 18, 21, 24, 25, 28]; const target = 13; const binarySearch = (arr = [], target) => { const helper = (low, high) => { if (low > high) { return -1 } const middle = Math.floor((low + high) / 2) if (arr[middle] === target) { return middle } if (arr[middle] < target) { return helper(middle + 1, high) } return helper(low, middle - 1) } return helper(0, arr.length - 1) }; console.log(binarySearch(arr, target));
आउटपुट
5