हमें एक JavaScript फ़ंक्शन लिखना होगा जो पहले आर्गुमेंट के रूप में literals की एक सॉर्ट की गई सरणी और दूसरे आर्गुमेंट के रूप में एक क्वेरी literal लेता है। फिर हमारे फ़ंक्शन को बाइनरी सर्च एल्गोरिदम का उपयोग करके यह ढूंढना चाहिए कि क्वेरी सरणी में मौजूद है या नहीं।
यदि यह मौजूद है, तो हम सरणी में इसका सूचकांक लौटाते हैं, अन्यथा हम -1 लौटाते हैं।
उदाहरण
इसका कोड निम्नलिखित होगा:
const arr = [1, 2, 3, 5, 6, 7, 10, 11, 14, 15, 17, 19, 20, 22, 23];
const binarySearch = (arr, query) => {
let index = Math.floor(arr.length / 2);
if (arr[index] === query){
return index;
}else if (arr.length === 1){
return null;
}else if (arr[index] < query) {
arr = arr.slice(index + 1);
let res = binarySearch(arr, query);
if (res === null){
return -1;
}else {
return index + 1 + res;
};
}else {
let arr1 = arr.slice(0, index);
return binarySearch(arr1, query);
};
};
console.log(binarySearch(arr, 1));
console.log(binarySearch(arr, 7));
console.log(binarySearch(arr, 11));
console.log(binarySearch(arr, 12));
console.log(binarySearch(arr, 22));
आउटपुट
कंसोल में आउटपुट:
0 5 7 -1 13