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

डेटा संरचना में सरणी दोहरीकरण (Array Doubling)


कभी-कभी हम डायनामिक मेमोरी आवंटन का उपयोग करके सरणी बनाते हैं। यदि सरणी डायनामिक मेमोरी आवंटन तकनीक का उपयोग करके आवंटित की गई है, तो हम कुछ संक्रियाएँ करके सरणी का आकार दोगुना कर सकते हैं।

मान लीजिए प्रारंभिक सरणी का आकार 5 था।

सरणी

01234
तत्व 1तत्व 2तत्व 3तत्व 4तत्व 5

सरणी दोहरीकरण के बाद, आकार होगा:

0123456789
तत्व 1तत्व 2तत्व 3तत्व 4तत्व 5तत्व 6तत्व 7तत्व 8तत्व 9तत्व 10

आकार n की सरणी arr के आकार को दोगुना करने के लिए, arr[0…n-1]। सबसे पहले हमें m आकार की एक नई सरणी बनानी होगी। फिर पुरानी सरणी से n तत्वों को नई सरणी में कॉपी करना होगा। अंत में arr के मान को नई सरणी की ओर इंगित करने के लिए बदलना होगा।

आकार m की सरणी बनाने में θ(m) समय लगेगा। ऐसा इसलिए है क्योंकि इसे कुछ डिफ़ॉल्ट मानों से आरंभ किया जाएगा। फिर पुरानी सरणी से नई सरणी में कॉपी करने के लिए अतिरिक्त θ(n) समय लगेगा। इसलिए संक्रियाएँ θ(m + n) समय लेती हैं। यह संक्रिया तब होती है जब सरणी भर जाती है। और आमतौर पर m का मान 2n के समान होता है। इसलिए जटिलता θ(2n + n) = θ(3n) होती है जो θ(n) के बराबर है। लेकिन यह संक्रिया महंगी मानी जाती है। हालांकि, यदि यह संक्रिया उत्तरवर्ती n पुनरावृत्तियों पर परिशोधित (amortized) हो, तो यह प्रति पुनरावृत्ति केवल θ(1) समय जोड़ती है। इसलिए हम समझ सकते हैं कि सरणी का आकार स्थिर कारक में बढ़ने से स्पर्शोन्मुख जटिलता (asymptotic complexity) पर प्रतिकूल प्रभाव नहीं पड़ता।


  1. डेटा संरचना में एकल सरणी में एकाधिक सूचियाँ (Multiple Lists in a Single Array) डेटा संरचना में एकल सरणी में एकाधिक सूचियाँ (Multiple Lists in a Single Array)

    सरणी प्रतिनिधित्व मूल रूप से स्थान की बर्बादी है जब यह डेटा संग्रहीत कर रहा है जो समय के साथ बदल जाएगा। कुछ डेटा संग्रहीत करने के लिए, हम कुछ स्थान आवंटित करते हैं जो एक सरणी में कई मानों को संग्रहीत करने के लिए पर्याप्त बड़ा हो। मान लीजिए हम सरणी दोहरीकरण मानदंड (array doubling criteria) का उपयोग

  1. डेटा संरचना में सेगमेंट ट्री (Segment Trees) डेटा संरचना में सेगमेंट ट्री (Segment Trees)

    इस अनुभाग में हम देखेंगे कि सेगमेंट ट्री (Segment Tree) क्या है। उस पर चर्चा करने से पहले, आइए एक समस्या देखें। मान लीजिए हमारे पास एक सरणी arr[0,…,n-1] है। हम निम्न संक्रियाएँ कर सकते हैं: इंडेक्स l से r तक के तत्वों का योग ढूंढें, जहां 0 ≤ l ≤ r ≤ n-1 सरणी के एक निर्दिष्ट तत्व के मान को नए मान

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

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