আপনি হঠাৎ করেই একদল গণিতবিদের সাক্ষাৎ পেয়ে গেছেন, যাঁরা একইসাথে গায়ক-গীতিকারও। তাঁরা তাঁদের প্রিয় প্রতিটি সংখ্যার জন্য একটি করে গান লিখেছেন, আর আপনি নিশ্চয়ই ভাবতে পারেন, তাঁদের প্রিয় সংখ্যার কোনো শেষ নেই (যেমন 0 বা 73 বা 6174)।
আপনার প্রিয় সংখ্যাটির গানটি শুনতে আপনার কৌতূহল হচ্ছে, কিন্তু এতগুলো গানের ভিড়ে সঠিক গানটি খুঁজে বের করতে বেশ কিছুটা সময় লেগে যেতে পারে। সৌভাগ্যবশত, তাঁরা তাঁদের গানগুলো শিরোনাম অনুযায়ী সাজিয়ে একটি প্লেলিস্ট তৈরি করেছেন। আর সেই শিরোনাম আসলে সেই সংখ্যাটিই, যে সংখ্যা নিয়ে গানটি লেখা।
আপনি বুঝতে পারেন, শিরোনাম জানা থাকলে বাইনারি সার্চ অ্যালগরিদম ব্যবহার করে দ্রুত গানটি খুঁজে বের করা যায়।
আপনার কাজ হলো একটি বাইনারি সার্চ অ্যালগরিদম তৈরি করা।
একটি বাইনারি সার্চ অ্যালগরিদম একটি অ্যারেকে বারবার অর্ধেক ভাগ করে, আর কেবল যে অর্ধে আমাদের খোঁজা আইটেমটি রয়েছে সেটিই রেখে দিয়ে অ্যারেটি থেকে একটি আইটেম খুঁজে বের করে। এটি আমাদের খোঁজা আইটেমটির সম্ভাব্য অবস্থানগুলো দ্রুত সংকুচিত করতে সাহায্য করে, যতক্ষণ না আমরা সেটি খুঁজে পাই বা সম্ভাব্য সব অবস্থান বাদ দিয়ে ফেলি।
বাইনারি সার্চ কেবল তখনই কাজ করে যখন অ্যারেটি সাজানো থাকে।
অ্যালগরিদমটি দেখতে এমন:
এখানে একটি উদাহরণ:
ধরা যাক, নিচের সাজানো অ্যারেতে আমরা 23 সংখ্যাটি খুঁজছি: [4, 8, 12, 16, 23, 28, 32].
[23, 28, 32].[23].Exercism-এ সাইন আপ করুন, Delphi Pascal ট্র্যাকের 76টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।