Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> प्रोग्रामिंग

डेटा संरचना में सार्वभौमिक हैशिंग (Universal Hashing)


किसी भी हैश फ़ंक्शन के लिए हम कह सकते हैं कि यदि टेबल आकार m, यूनिवर्स आकार u से बहुत छोटा है, तो किसी भी हैश फ़ंक्शन h के लिए, U का कुछ बड़ा उपसमुच्चय होता है जिसका हैश मान समान होता है।

इस समस्या से छुटकारा पाने के लिए, हमें हैश फ़ंक्शन का एक समुच्चय चाहिए, जिसमें से हम कोई भी एक चुन सकें जो S के लिए अच्छा काम करे। यदि अधिकांश हैश फ़ंक्शन S के लिए बेहतर हैं, तो हम यादृच्छिक हैश फ़ंक्शन चुन सकते हैं।

मान लीजिए ℌ हैश फ़ंक्शन का एक समुच्चय है। हम कह सकते हैं कि ℌ सार्वभौमिक (universal) है यदि, प्रत्येक x, y ∈ U के लिए, h ∈ ℌ की संख्या, जैसे कि h(x) = h(y), अधिकतम |ℌ|/m है। दूसरे शब्दों में हम कह सकते हैं कि एक हैश फ़ंक्शन h के साथ, जिसे ℌ से यादृच्छिक रूप से चुना गया है, अलग-अलग कुंजियों x और y के बीच टकराव की संभावना, 1/m में टकराव की संभावना से अधिक नहीं है, यदि h(x) = h(y), को सेट {0, 1, …, m – 1} से यादृच्छिक और स्वतंत्र रूप से चुना गया हो।

यदि हम हैश फ़ंक्शन h का उपयोग करके हैश टेबल में S संग्रहीत करते हैं, तो खोज और हटाने के लिए अपेक्षित समय O(1 + α) है।


  1. डेटा संरचना में रैखिक जांच (Linear Probing) डेटा संरचना में रैखिक जांच (Linear Probing)

    इस अनुभाग में हम देखेंगे कि ओपन एड्रेसिंग योजना में रैखिक जांच (Linear Probing) तकनीक क्या है। एक सामान्य हैश फ़ंक्शन h(x) : U → {0, 1, …, m – 1} है। ओपन एड्रेसिंग योजना में, वास्तविक हैश फ़ंक्शन h(x) सामान्य हैश फ़ंक्शन h(x) लेता है और उसके साथ एक और भाग जोड़ता है ताकि एक रैखिक समीकरण बनाया जा सके

  1. डेटा संरचना में चेनिंग के साथ हैशिंग (Hashing with Chaining) डेटा संरचना में चेनिंग के साथ हैशिंग (Hashing with Chaining)

    इस अनुभाग में हम देखेंगे कि चेनिंग (Chaining) के साथ हैशिंग क्या है। चेनिंग टकराव समाधान (collision resolution) की एक तकनीक है। हम टकराव से बच नहीं सकते, लेकिन हम टकराव को कम करने की कोशिश कर सकते हैं, और एक ही हैश मान के लिए कई तत्वों को संग्रहीत करने का प्रयास कर सकते हैं। इस तकनीक में मान लीजिए

  1. हाफएज डेटा स्ट्रक्चर (Halfedge Data Structure) हाफएज डेटा स्ट्रक्चर (Halfedge Data Structure)

    परिचय (Introduction) टेम्पलेट पैरामीटर्स के लिए HDS या हाफएज डेटा स्ट्रक्चर (Halfedge Data Structure - संक्षिप्त HalfedgeDS) को एक एज-केंद्रित डेटा स्ट्रक्चर (Edge-centered Data Structure) के रूप में परिभाषित किया जाता है जो वर्टेक्स, एज और फेसेस (Vertices, Edges and Faces) की घटना जानकारी (Incidenc