हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना आवश्यक है जो पहले तर्क के रूप में संख्याओं की एक क्रमबद्ध सरणी और दूसरे तर्क के रूप में एक खोज संख्या लेता है।
यदि खोज संख्या सरणी में मौजूद है, तो हमें इसके सूचकांक को सरणी में वापस करने की आवश्यकता है, अन्यथा हमें -1 वापस करने की आवश्यकता है।
हमें इसे बाइनरी सर्च एल्गोरिथम का उपयोग करके करना है। बाइनरी सर्च एल्गोरिथम मूल रूप से एक डिवाइड एंड कॉनकॉर एल्गोरिथम है जो रिकर्सिव को तब तक हिस्सों में विभाजित करता है जब तक कि यह सिंगलटन एलिमेंट से बातचीत न कर ले।
इस मामले में बाइनरी सर्च एल्गोरिथम के लिए सरणी की छँटाई आवश्यक है, क्योंकि यह तय करती है कि किस भाग को विभाजित करना हमारे लिए आसान है।
उदाहरण
const arr = [-3, -1, 4, 7, 9, 11, 14, 22, 26, 28, 36, 45, 67, 78, 88, 99]; const binarySearch = (arr = [], num) => { let l = 0; let r = arr.length - 1; while(l <= r){ const mid = Math.floor((l + r) / 2); if(num == arr[mid]){ return mid; } else if(num < arr[mid]){ r = mid - 1; } else{ l = mid + 1; }; }; return -1 }; console.log(binarySearch(arr, 22)); console.log(binarySearch(arr, 56)); console.log(binarySearch(arr, 11));
आउटपुट
और कंसोल में आउटपुट होगा -
7 -1 5