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

ডেটা স্ট্রাকচরে র‍্যান্ডমাইজড ফিংগার সার্চ ট্রি

ডিটারমিনিস্টিক সার্চ ট্রির দুটি র‍্যান্ডমাইজড অ্যাল্টারনেটিভ হলো র‍্যান্ডমাইজড বাইনারি সার্চ ট্রি, ট্রিপস এবং স্কিপ লিস্ট। উভয় ট্রিপস এবং স্কিপ লিস্ট ইলিগ্যান্ট ডেটা স্ট্রাকচার হিসেবে ডিফাইন করা হয়েছে, যেখানে র‍্যান্ডমাইজেশন সিম্পল এবং ইফিশিয়েন্ট আপডেট অপারেশন ফ্যাসিলিটেট করে।

এই সেকশনে আমরা ব্যাখ্যা করব কিভাবে উভয় ট্রিপস এবং স্কিপ লিস্ট কার্যকর ফিংগার সার্চ ট্রি হিসেবে বাস্তবায়িত হতে পারে ডেটা স্ট্রাকচার ছাড়া পরিবর্তন করেই। দুটোই ডেটা স্ট্রাকচার ফিংগার সার্চ সাপোর্ট করে এক্সপেক্টেড O(log d) টাইম কনসাম করে, যেখানে এক্সপেক্টেশন নেওয়া হয় র‍্যান্ডম চয়েসগুলোর ওভার যা অ্যালগরিদম দ্বারা তৈরি হয় ডেটা স্ট্রাকচার কনস্ট্রাকশনের সময়।

স্কিপ লিস্ট (Skip lists)

একটি স্কিপ লিস্টে, কেউ ফিংগার সার্চ করতে পারে এলিমেন্ট a-র জন্য একটি নোড থেকে যেটি এলিমেন্ট b ধারণ করে সিম্পলি সার্চ কন্টিনিউ করে এই পয়েন্ট থেকে। লক্ষ্য করুন যে যদি a < b, তবে সার্চ পिछ দিকে প্রসিড করে, এবং যদি a > b, তবে সার্চ সামনে দিকে প্রসিড করে। ব্যাকওয়ার্ড কেস নরমাল সার্চ ইন এ স্কিপ লিস্টের সাথে সিমেট্রিক, কিন্তু ফরওয়ার্ড কেস আসলে আরও জটিল। নরম্যালি, স্কিপ লিস্টে সার্চ এক্সপেক্টেড ফাস্ট কারণ লিস্টের শুরুতে সেন্টিনেল কনসিডার করা হয় ট্যালেস্ট নোড হিসেবে। তবে, আمار ফিংগার হতে পারে একটি নোড অফ হাইট ১ সাথে অ্যাসোসিয়েটেড। এই কারণে, আমরা কদাচিৎ ক্লাইম করতে পারি সার্চ করার চেষ্টায়; কিছু যা নরম্যালি কখনো ঘটে না। যাইহোক, এমন কমপ্লিকেশন থাকলেও, আমরা O(log d) এক্সপেক্টেড সার্চ টাইম অর্জন করতে পারি।

ট্রিপস (Treaps)

একটি ট্রিপ হলো একটি র‍্যান্ডমাইজড বাইনারি সার্চ ট্রি (BST)। ট্রিপে সার্চিং সেম qualsevol অন্য BST-এ এলিমেন্ট সার্চ করার মতো। ট্রিপস যাইহোক প্রোপার্টি আছে যে দুটি এলিমেন্টের মাঝপথে এক্সপেক্টেড পাথ লেন্থ দূরত্ব d হলো O(log d)। তাই, এলিমেন্ট b ধারণকারী নোড থেকে এলিমেন্ট a-র জন্য ফিংগার সার্চ করতে, কেউ ট্রি ক্লাইম করতে পারে b এলিমেন্ট থেকে যতক্ষণ না a-র একটি অ্যানসেস্টর পাওয়া যায়, সেখান থেকে নরমাল BST সার্চ চলতে থাকে সাধারণভাবে। একটি নোড অন্য একটির অ্যানসেস্টর কিনা ক্যালকুলেট করা নন-ট্রিভিয়াল, কিন্তু কেউ ট্রি অগমেন্ট করতে পারে এই ফর্মের কোয়েরি সাপোর্ট করার জন্য এক্সপেক্টেড O(log d) ফিংগার সার্চ টাইম প্রদান করতে।

  1. ডেটা স্ট্রাকচরে সেগমেন্ট ট্রি

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

  3. ডেটা স্ট্রাকচরে BSP ট্রি

  4. ডেটা স্ট্রাকচরে রেঞ্জ ট্রি