BCA / B.Tech 6 min read

Algorithm of Space Complexity in Hindi

Algorithm of Space Complexity in Data Structure in Hindi |  स्पेस कॉम्प्लेक्सिटी का एल्गोरिदम :


स्पेस कॉम्प्लेक्सिटी का एल्गोरिदम किसी भी प्रोग्राम या एल्गोरिदम द्वारा आवश्यक मेमोरी का माप करने के लिए उपयोग किया जाता है। इसका विश्लेषण करते समय, हम ध्यान देते हैं कि एल्गोरिदम को चलाते समय कितनी मेमोरी की आवश्यकता होगी। यहाँ पर हम स्पेस कॉम्प्लेक्सिटी के एक सामान्य एल्गोरिदम को समझेंगे:

स्पेस कॉम्प्लेक्सिटी का एल्गोरिदम :

  • इनपुट का आकार (Input Size): सबसे पहले, हमें इनपुट का आकार (n) निर्धारित करना होगा। यह वह मान है जो हमें एल्गोरिदम में पास करना है।
  • स्थायी मेमोरी (Fixed Memory): इस चरण में, हम उन सभी स्थायी वेरिएबल्स, स्थायी डेटा स्ट्रक्चर, और फिक्स्ड साइज की मेमोरी की आवश्यकता को देखते हैं, जो हमारे एल्गोरिदम में उपयोग की जाएंगी। इसे अक्सर O(1) या कुछ अन्य स्थिर मात्रा में व्यक्त किया जाता है।
  • डायनामिक मेमोरी (Dynamic Memory): यदि हमारा एल्गोरिदम किसी प्रकार की डायनामिक मेमोरी का उपयोग कर रहा है, जैसे लिंकेड लिस्ट, ट्री, या अन्य डेटा स्ट्रक्चर, तो हमें इसकी स्पेस 
  • कॉम्प्लेक्सिटी को भी शामिल करना होगा। यह आमतौर पर इनपुट के आकार (n) के आधार पर बढ़ता है, जैसे O(n), O(n^2) आदि।
  • फंक्शन कॉल्स (Function Calls): यदि एल्गोरिदम में कई फंक्शन कॉल्स हैं, तो हमें उन फंक्शन कॉल्स के लिए आवश्यक मेमोरी को भी शामिल करना होगा। अगर फंक्शन को पैरामीटर पास किए जाते हैं, तो उस मेमोरी का भी आकलन करना जरूरी है।
  • कुल मेमोरी (Total Memory): अंत में, हम स्थायी मेमोरी और डायनामिक मेमोरी का योग करते हैं ताकि हम कुल स्पेस कॉम्प्लेक्सिटी प्राप्त कर सकें।

स्पेस कॉम्प्लेक्सिटी का उदाहरण :

मान लीजिए कि हम एक एल्गोरिदम बना रहे हैं जो एक एरे को इनपुट के रूप में लेता है और उसके तत्वों का योग निकालता है। इस एल्गोरिदम की स्पेस कॉम्प्लेक्सिटी का विश्लेषण करते हैं:

#include <stdio.h>

int sumArray(int arr[], int size) {
    int sum = 0; // स्थायी मेमोरी के लिए O(1)

    for(int i = 0; i < size; i++) {
        sum += arr[i]; // इनपुट एरे के लिए O(n)
    }
    
    return sum; // O(1) वापस करने के लिए
}

int main() {
    int numbers[] = {1, 2, 3, 4, 5};
    int size = sizeof(numbers) / sizeof(numbers[0]);
    
    int result = sumArray(numbers, size);
    printf("Sum: %d\n", result);
    
    return 0;
}

स्पेस कॉम्प्लेक्सिटी का विश्लेषण :

स्थायी मेमोरी:

sum वेरिएबल के लिए O(1) स्पेस।

डायनामिक मेमोरी:

arr नामक एरे का आकार size (n) पर निर्भर करता है, इसलिए इसके लिए O(n) स्पेस।

कुल स्पेस कॉम्प्लेक्सिटी:

स्थायी मेमोरी + डायनामिक मेमोरी = O(1) + O(n) = O(n)