"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > ऐरे डेटा संरचना में गहराई से उतरें

ऐरे डेटा संरचना में गहराई से उतरें

2024-09-02 को प्रकाशित
ब्राउज़ करें:549

एक सारणी क्या है?

  • ऐरे तत्वों का एक संग्रह है, प्रत्येक को एक सूचकांक या कुंजी द्वारा पहचाना जाता है।
  • सरणी का एक निश्चित और गतिशील आकार होता है
  • सजातीय तत्व → किसी सरणी में सभी तत्व एक ही डेटा प्रकार के होते हैं।
  • विषम ​​तत्व → एक ही सरणी में विभिन्न डेटा प्रकारों की अनुमति देते हैं।
// Homogeneous 
int[] intArray = new int[5]; // Array of integers String[] 
stringArray = new String[5]; // Array of strings

// Heterogeneous
mixedArray = [1, "hello", 3.14, True]  # Mixed data types in one list

सारणियों के लक्षण

  • अनुक्रमण: अधिकांश प्रोग्रामिंग भाषाओं में शून्य-आधारित अनुक्रमण।
  • आकार: निश्चित आकार (स्थिर), गतिशील रूप से नहीं बदला जा सकता (गतिशील सरणियों वाली भाषाओं को छोड़कर)।
  • मेमोरी आवंटन: सरणी तत्वों के लिए सन्निहित मेमोरी आवंटन। अर्थात प्रत्येक तत्व स्मृति में सीधे पिछले तत्व के बगल में है। यह संभव है क्योंकि सभी तत्व एक ही आकार के हैं, जिससे सिस्टम अपने सूचकांक का उपयोग करके किसी भी तत्व के मेमोरी पते की गणना कर सकता है।

Deep dive into Array Data Structure

सारणी संचालन

  • सम्मिलन: आमतौर पर तत्वों को स्थानांतरित करना, ओ(एन) समय जटिलता शामिल है।
  • हटाना: सम्मिलन के समान, तत्वों को स्थानांतरित करने की आवश्यकता हो सकती है। अंतिम सूचकांक को छोड़कर
  • ट्रैवर्सल: सभी तत्वों के माध्यम से पुनरावृत्ति, ओ(एन) समय जटिलता।
  • एक्सेस टाइम: ओ(1) किसी तत्व तक उसके सूचकांक का उपयोग करके पहुंचने के लिए समय जटिलता।

सारणियों के प्रकार

  • एक-आयामी सरणी: सबसे सरल रूप, एक सूची की तरह।
  • बहुआयामी सारणी: सारणियों की सारणी (उदाहरण के लिए, 2डी सारणी)।
  • दांतेदार सरणी: उप-सरणी की विभिन्न लंबाई वाली सारणी।
  • डायनामिक ऐरे (उदाहरण के लिए, जावा में ऐरेलिस्ट): ऐरे जो आकार में गतिशील रूप से बढ़ सकते हैं।

सारणियों के लाभ

  • दक्षता: तत्वों के लिए O(1) पहुंच समय।
  • मेमोरी उपयोग: सन्निहित भंडारण के कारण मेमोरी का कुशल उपयोग।
  • उपयोग में आसानी: डेटा प्रबंधन और सॉर्टिंग और खोज जैसे संचालन को सरल बनाता है

ऐरे के नुकसान

  • निश्चित आकार: एक बार घोषित होने के बाद आकार नहीं बदला जा सकता। गतिशील सरणी को छोड़कर
  • सम्मिलन/हटाने की लागत: O(n) किसी तत्व को सम्मिलित करने या हटाने के लिए, विशेष रूप से बीच में।
  • मेमोरी बर्बादी: अप्रयुक्त तत्व अभी भी जगह घेरते हैं।

सारणियों के वास्तविक दुनिया के अनुप्रयोग

  • डेटा संग्रहीत करना: तत्वों के संग्रह को संग्रहीत करने के लिए प्रोग्रामिंग में सामान्य।
  • सॉर्टिंग एल्गोरिदम: कई सॉर्टिंग एल्गोरिदम सरणियों के लिए डिज़ाइन किए गए हैं (उदाहरण के लिए, क्विकसॉर्ट, मर्जसॉर्ट)।
  • मैट्रिक्स संचालन: 2डी सरणियों का उपयोग गणित और ग्राफिक्स में मैट्रिक्स संचालन के लिए किया जाता है।
  • स्टैक और कतारों को लागू करना: बुनियादी डेटा संरचनाओं को सरणियों का उपयोग करके लागू किया जा सकता है।

सारणियों के साथ सर्वोत्तम अभ्यास

  • अनावश्यक प्रतियों से बचें: उन कार्यों से सावधान रहें जिनमें प्रतिलिपि तत्वों की आवश्यकता होती है।
  • आवश्यकता पड़ने पर गतिशील सारणी का उपयोग करें: यदि आकार अनिश्चित है, तो गतिशील सारणी को प्राथमिकता दें।
  • अंतर्निहित कार्यों का लाभ उठाएं: सरणी संचालन के लिए भाषा-विशिष्ट कार्यों का उपयोग करें।
  • सीमा जांच: IndexOutOfBoundsException से बचने के लिए हमेशा सीमा शर्तों की जांच करें।

GO में स्टेटिक और डायनेमिक ऐरे का उदाहरण

package main

import (
    "fmt"
    "unsafe"
)

func main() {
    // Static Array
    var staticArr [5]int64
    staticArr[0] = 1
    staticArr[1] = 2
    staticArr[2] = 3
    staticArr[3] = 4
    staticArr[4] = 5
    elementSize := unsafe.Sizeof(staticArr[0])
    totalSize := elementSize * uintptr(len(staticArr))
    fmt.Printf("Memory used by static array: %d bytes\n", totalSize)
    fmt.Println()

    // Dynamic Array (Slice)
    dynamicArr := make([]int32, 0, 5)
    before := unsafe.Sizeof(dynamicArr[0])
    beforeTotal := before * uintptr(len(dynamicArr))
    fmt.Printf("Memory used by dynamic array (before): %d bytes\n", beforeTotal)

    // Append elements to dynamic array
    for i := 0; i 




          

            
        
विज्ञप्ति वक्तव्य यह आलेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/चंद्र179/दीप-डाइव-इन्टो-एरे-डेटा-स्ट्रक्चर-1g82?1 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए स्टडी_गोलंग@163.com से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3