কম্পিউটার

জাভাস্ক্রিপ্টে ব্লক অনুসন্ধান বাস্তবায়ন করা হচ্ছে


অনুসন্ধান ব্লক করুন

বাইনারি অনুসন্ধানের মতো, ব্লক অনুসন্ধানও সাজানো অ্যারেগুলির জন্য একটি অনুসন্ধান অ্যালগরিদম। মূল ধারণা হল নির্দিষ্ট ধাপে এগিয়ে গিয়ে বা সমস্ত উপাদান অনুসন্ধানের জায়গায় কিছু উপাদান বাদ দিয়ে কম উপাদান (রৈখিক অনুসন্ধানের চেয়ে) পরীক্ষা করা।

উদাহরণস্বরূপ

ধরুন আমাদের দৈর্ঘ্য n এর একটি অ্যারে এবং m আকারের ব্লক (জাম্প করতে হবে) আছে। তারপরে আমরা arr[0], arr[m], arr[2 * m], ..., arr[k*m] ইত্যাদি সূচীতে অনুসন্ধান করি।

একবার আমরা ব্যবধান arr[k * m]

এই অ্যালগরিদমের সময় জটিলতা হল −

O(√n)

উদাহরণ

নিম্নলিখিত কোড -

const arr = [1, 4, 6, 7, 9, 12, 15, 16, 17, 23, 25, 26, 27, 31];
const target = 25;
const blockSearch = (arr = [], target) => {
   let { length: len } = arr;
   let step = Math.floor(Math.sqrt(len));
   let blockStart = 0
   let currentStep = step;
   while (arr[Math.min(currentStep, len) - 1] < target) {
      blockStart = currentStep;
      currentStep += step;
      if (blockStart >= len)
         return -1;
   }
   while (arr[blockStart] < target){
      blockStart++;
      if (blockStart == Math.min(currentStep, len))
         return -1;
   }
   if (arr[blockStart] == target)
      return blockStart
   else
      return -1;
};
console.log(blockSearch(arr, target));

আউটপুট

নিম্নোক্ত কনসোলে আউটপুট -

10

  1. জাভাস্ক্রিপ্টে একটি স্ট্রিং কীভাবে অনুসন্ধান করবেন?

  2. জাভাস্ক্রিপ্টে ব্লক স্কোপিং।

  3. জাভাস্ক্রিপ্ট কি ব্লক সুযোগ সমর্থন করে?

  4. জাভাস্ক্রিপ্টে রৈখিক অনুসন্ধান বাস্তবায়ন করা