কম্পিউটার টিউটোরিয়াল

জাভাস্ক্রিপ্টে বাইনারি সার্চ ইমপ্লিমেন্ট করা যাতে সার্চ করা নাম্বার থাকলে ইন্ডেক্স রিটার্ন করে

আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা প্রথম আর্গুমেন্ট হিসেবে সর্টেড সংখ্যার একটি অ্যারে এবং দ্বিতীয় আর্গুমেন্ট হিসেবে একটি সার্চ নাম্বার নেবে।

যদি সার্চ নাম্বার অ্যারেতে থাকে, তবে আমাদের এর ইন্ডেক্স রিটার্ন করতে হবে, অন্যথায় -১ রিটার্ন করতে হবে।

আমাদের বাইনারি সার্চ অ্যালগরিদম ব্যবহার করে এটি করতে হবে। বাইনারি সার্চ অ্যালগরিদম মূলত একটি ডিভাইড অ্যান্ড কঙ্কর অ্যালগরিদম যা রিকার্সিভলি অ্যারেকে halve করে singelton এলিমেন্ট পর্যন্ত চলে আসে।

এই কেসে অ্যারেটি সর্টেড থাকা জরুরি বাইনারি সার্চ অ্যালগরিদমের জন্য, কারণ এটি ডিভাইড করা কোন অংশ দিয়ে কাজ করতে হবে সেটি নির্ণয় করা সহজ করে।

উদাহরণ

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
  1. বাইনারি সার্চ জাভাস্ক্রিপ্ট: একটি গাইড

  2. জাভাস্ক্রিপ্টে ডকুমেন্টে ইমেজের সংখ্যা পাওয়া

  3. জাভাস্ক্রিপ্টে লিনিয়ার সার্চ বাস্তবায়ন

  4. জাভাস্ক্রিপ্টে সেট (Set) এর সর্বোচ্চ দৈর্ঘ্য বের করা