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

ডেটা স্ট্রাকচরে ইউনিভার্সাল হ্যাশিং


যেকোনো হ্যাশ ফাংশনের জন্য আমরা বলতে পারি যে যদি টেবিলের আকার m বিশ্বব্রহ্মাণ্ডের আকার u-র চেয়ে অনেক ছোট হয়, তবে যেকোনো হ্যাশ ফাংশন h-এর জন্য, U-র কিছু বড় সাবসেট থাকবে যার একই হ্যাশ মান হবে।

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

ধরি ℌ হ্যাশ ফাংশনগুলোর একটি সেট। আমরা বলতে পারি ℌ ইউনিভার্সাল যদি, প্রতিটি x, y ∈ U-এর জন্য, h ∈ ℌ যাতে h(x) = h(y) স 만족 করে এমন h-র সংখ্যা সর্বোচ্চ |ℌ|/m। অন্য কথায়, একটি হ্যাশ ফাংশন h যা ℌ-থেকে র‍্যান্ডমলি বেছে নেওয়া হয়েছে, সেটির সাথে স্বতন্ত্র x এবং y-এর মধ্যে কollision হওয়ার সুযোগ 1/m-এর চেয়ে বেশি নয়।

যদি আমরা S কে হ্যাশ ফাংশন h ব্যবহার করে হ্যাশ টেবিলে সংরক্ষণ করি, তবে সার্চিং এবং ডিলিট করার প্রত্যাশিত সময় O(1 + α)।


  1. ডেটা স্ট্রাকচরে কোড্রেটিক প্রোবিং

  2. ডেটা স্ট্রাকচরে লিনিয়ার প্রোবিং

  3. ডেটা স্ট্রাকচরে চেইনিং সহ হ্যাশিং

  4. হাফ-এজ ডেটা স্ট্রাকচার