हमें एक JavaScript फ़ंक्शन लिखना है जो संख्याओं के सॉर्टेड ऐरे को पहले आर्गुमेंट के रूप में और एक खोज संख्या को दूसरे आर्गुमेंट के रूप में लेता है।
यदि खोज संख्या ऐरे में मौजूद है, तो हमें ऐरे में उसका इंडेक्स लौटाना होगा, अन्यथा हमें -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