problem:
একটি N size এর Array তে কিছু নাম্বার দেয়া হল। এখন প্রতিবার x থেকে y রেঞ্জ
এর মধ্যে কুয়েরি করে বের করতে হবে minimum নাম্বার কত।
এখন একদম brute force উপায়ে যদি বের করি তাহলে complexity হবে প্রতি query
তে x to y iterate করতে হবে. Array size যদি N হয় এবং query যদি N টা হয়।
তাহলে worst case complexity হচ্ছে O(N²)। যা খুবই costly.
Square root decomposition:
এখন total Array কে square root size block এ ভাগ করতে হবে।
Array size যদি N হয় তাহলে পুরো Array কে √N size block এ ভাগ করে নিব।
এবং প্রতি Block এ √N টা element এর result
থাকবে। square root যদি perfect না হয়, তাহলে একদম শেষ Block এ square root
থেকে কম element এর রেজাল্ট থাকবে।
এখন যদি 100 size এর একটা Array কে square root decompose করা হয় তাহলে, total block size হবে √100=10 এবং প্রতি Block এ থাকবে 10 টা element এর result.