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

डेटा स्ट्रक्चर में ओवरफ्लो हैंडलिंग

ओवरफ्लो उस समय होता है जब एक नई जोड़ी (Key, Element) के लिए होम बकेट (Home Bucket) भर जाती है।

हम ओवरफ्लो को निम्न तरीकों से संभाल सकते हैं:

  • हैश टेबल में किसी व्यवस्थित तरीके से ऐसे बकेट की खोज करें जो भरा न हो।
    • लीनियर प्रोबिंग (Linear Probing / Linear Open Addressing)
    • क्वाड्रेटिक प्रोबिंग (Quadratic Probing)
    • रैंडम प्रोबिंग (Random Probing)
  • प्रत्येक बकेट को उन सभी जोड़ियों की सूची रखने की अनुमति देकर ओवरफ्लो को समाप्त करें जिनके लिए यह होम बकेट है।
    • एरे लीनियर लिस्ट (Array Linear List)
    • चेन (Chain)

ओपन एड्रेसिंग (Open Addressing) यह सुनिश्चित करने के लिए की जाती है कि सभी एलिमेंट सीधे हैश टेबल में स्टोर हों, इस प्रकार यह विभिन्न तरीकों को लागू करके टकराव (Collisions) को हल करने का प्रयास करता है।

लीनियर प्रोबिंग (Linear Probing) टकराव को हल करने के लिए डेटा को टेबल में अगले खुले स्लॉट में रखकर किया जाता है।

लीनियर प्रोबिंग का प्रदर्शन (Performance of Linear Probing)

  • सबसे खराब स्थिति में फाइंड/इन्सर्ट/इरेज़ समय θ(m) होता है, जहां m को टेबल में जोड़ियों की संख्या माना जाता है।
  • यह तब होता है जब सभी जोड़ियाँ एक ही क्लस्टर (Cluster) में होती हैं।

लीनियर प्रोबिंग की समस्या (Problem of Linear Probing)

  • आइडेंटिफायर्स का एक साथ क्लस्टर होने की प्रवृत्ति
  • आसन्न क्लस्टर्स का विलय (Coalesce) होने की प्रवृत्ति
  • खोज समय में वृद्धि या वृद्धि

क्वाड्रेटिक प्रोबिंग (Quadratic Probing)

लीनियर प्रोबिंग बकेट्स (H(x)+i²)%b खोजता है; H(x), x का हैश फंक्शन दर्शाता है।

क्वाड्रेटिक प्रोबिंग, i के क्वाड्रेटिक फंक्शन को इन्क्रीमेंट के रूप में लागू करता है।

बकेट्स H(x), (H(x)+i²)%b, (H(x)-i²)%b की जांच करें, जहां 1 ≤ i ≤ (b-1)/2

b को 4j+3 फॉर्म की एक अभाज्य संख्या (Prime Number) के रूप में दर्शाया गया है, जहां j एक पूर्णांक है।

रैंडम प्रोबिंग (Random Probing)

रैंडम प्रोबिंग रैंडम नंबर्स को शामिल करके की जाती है।

H(x) := (H'(x) + S[i]) % b
S[i] आकार b-1 की एक टेबल है
S[i] को पूर्णांकों [1, b-1] का एक रैंडम परमुटेशन (Random Permutation) दर्शाया गया है।
  1. डेटा संरचना में B+ ट्री क्वेरी (B+ tree Query) डेटा संरचना में B+ ट्री क्वेरी (B+ tree Query)

    यहाँ हम देखेंगे कि B+ ट्री में खोज कैसे की जाती है। B+ ट्री खोज को B+ ट्री क्वेरीिंग (B+ Tree Querying) के रूप में भी जाना जाता है। यह एल्गोरिदम B-ट्री की क्वेरी करने के समान है। इसके अलावा, यह रेंज क्वेरी (range query) का समर्थन करता है। मान लीजिए हमारे पास नीचे जैसा B+ ट्री है: B+ ट्री का उदाहरण

  1. डेटा संरचना में B+ ट्री (The B+ tree) डेटा संरचना में B+ ट्री (The B+ tree)

    यहाँ हम देखेंगे कि B+ ट्री (B+ Trees) क्या हैं। B+ ट्री B-ट्री का विस्तारित संस्करण हैं। यह ट्री B-ट्री की तुलना में बेहतर सम्मिलन, विलोपन और खोज का समर्थन करता है। B-ट्री में, कुंजियाँ और रिकॉर्ड मान आंतरिक और साथ ही पत्ती नोड्स में संग्रहीत होते हैं। B+ ट्री में रिकॉर्ड्स, पत्ती नोड पर संग्रहीत

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

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