কম্পিউটার

ডেটা স্ট্রাকচারে পুনরাবৃত্তি সমীকরণ


অ্যালগরিদম বিশ্লেষণের সময়, আমরা কিছু পুনরাবৃত্তি সম্পর্ক খুঁজে পাই। এই পুনরাবৃত্তি সম্পর্কগুলি মূলত অভিব্যক্তিতে একই ফাংশন ব্যবহার করে। রিকার্সিভ অ্যালগরিদম অ্যানালাইসিস এবং ডিভাইড অ্যান্ড কনক্যুয়ার অ্যালগরিদমের বেশিরভাগ ক্ষেত্রেই আমরা রিকারেন্স রিলেশন পাই৷

এখানে আমরা কিছু উদাহরণের সাহায্যে পুনরাবৃত্তি সমীকরণের একটি উদাহরণ দেখতে পাব। ধরুন আমরা বাইনারি সার্চ টেকনিক ব্যবহার করছি। এই কৌশলটিতে, আমরা উপাদানটি শেষে উপস্থিত আছে কিনা তা পরীক্ষা করি। যদি এটি মাঝখানে উপস্থিত থাকে, তাহলে অ্যালগরিদম বন্ধ হয়ে যায়, অন্যথায় আমরা প্রকৃত অ্যারে থেকে বাম এবং ডান সাবয়ারে বারবার গ্রহণ করি। সুতরাং প্রতিটি ধাপে অ্যারের আকার n / 2 দ্বারা হ্রাস পায়। ধরুন বাইনারি অনুসন্ধান অ্যালগরিদমটি কার্যকর করতে T(n) পরিমাণ সময় নেয়। বেস কন্ডিশন O(1) পরিমাণ সময় নেয়। সুতরাং পুনরাবৃত্তি সমীকরণটি নীচের মত হবে −

$$T(n)=\begin{cases}T(1) &for\:n \leq 1\\T(|\frac{n}{2}\rvert)+c &for\:n> 1\ end{cases}$$

একইভাবে, আমরা যদি মার্জ সর্টের মতো আরেকটি উদাহরণ বেছে নিই, তাহলে সেই ক্ষেত্রে আমরা তালিকাটিকে দুটি ভাগে ভাগ করি। তালিকার আকার মাত্র 1 না হওয়া পর্যন্ত এই বিভাগটি সংঘটিত হচ্ছে। এর পরে আমরা তাদের সাজানো ক্রমে একত্রিত করি। মার্জিং অ্যালগরিদম O(n) পরিমাণ সময় নেয়। সুতরাং মার্জ সর্ট অ্যালগরিদম যদি T(n) পরিমাণ সময় নেয়, তাহলে এটিকে দুটি অর্ধে ভাগ করে, এবং তাদের প্রত্যেকের জন্য একই কাজ করে, তারা T(n/2) এবং আরও অনেক কিছু নেবে। সুতরাং পুনরাবৃত্তি সম্পর্ক নীচের মত হবে −

$$T(n)=\begin{cases}T(1) &for\:n =1\\2T(\frac{n}{2})+cn &for\:n> 1\end{cases} $$

আমরা বিভিন্ন পদ্ধতি ব্যবহার করে এই সমীকরণগুলি সমাধান করতে পারি, যেমন প্রতিস্থাপন, পুনরাবৃত্তি ট্রি পদ্ধতি এবং কিছু বিশেষ ধরণের পুনরাবৃত্তি সম্পর্কগুলি মাস্টার পদ্ধতি ব্যবহার করে সমাধান করা যেতে পারে।


  1. ডেটা স্ট্রাকচারে ইন্টারভাল ট্রিস

  2. ডেটা স্ট্রাকচারে B+ ট্রি কোয়েরি

  3. ডেটা স্ট্রাকচারে B+ গাছ

  4. অর্ধেক ডাটা স্ট্রাকচার