BCA / B.Tech 6 min read

Algorithm of TimeComplexity in Hindi

 Algorithm of Time Complexity in Data Structure in Hindi | समय जटिलता का एल्गोरिदम :


  • समय जटिलता किसी एल्गोरिदम के निष्पादन में लगने वाले समय का माप है। इसे आमतौर पर इनपुट के आकार के अनुसार दर्शाया जाता है और इसे Big O Notation में व्यक्त किया जाता है। 
  • समय जटिलता एल्गोरिदम के प्रदर्शन को समझने में एक महत्वपूर्ण भूमिका निभाती है। विभिन्न प्रकार की समय जटिलता का सही ज्ञान हमें यह निर्णय लेने में मदद करता है कि कौन सा 
  • एल्गोरिदम हमारे समस्या समाधान के लिए सबसे उपयुक्त है। 
  • एक कुशल प्रोग्रामर के लिए समय जटिलता का विश्लेषण आवश्यक है, ताकि वह अपने कोड को अनुकूलित कर सके और बेहतर प्रदर्शन प्राप्त कर सके।
  • यहाँ हम समय जटिलता को समझने के लिए एक साधारण एल्गोरिदम के उदाहरण के माध्यम से जानेंगे।

समय जटिलता के आधारभूत नियम

  • सबसे खराब स्थिति (Worst Case): यह उस स्थिति को दर्शाता है जिसमें एल्गोरिदम का सबसे अधिक समय लगेगा।
  • सर्वश्रेष्ठ स्थिति (Best Case): यह उस स्थिति को दर्शाता है जिसमें एल्गोरिदम का सबसे कम समय लगेगा।
  • औसत स्थिति (Average Case): यह उन सभी संभावित स्थितियों के औसत समय को दर्शाता है।

समय जटिलता का एल्गोरिदम :

मान लीजिए कि हमें एक संख्या का फ़ीबोनाच्ची अनुक्रम (Fibonacci Sequence) बनाने का कार्य करना है। इस अनुक्रम का nth टर्म ज्ञात करने के लिए हम निम्नलिखित साधारण एल्गोरिदम का उपयोग कर सकते हैं:

एल्गोरिदम : फ़ीबोनाच्ची अनुक्रम की गणना (Fibonacci Sequence Calculation)

फंक्शन Fibonacci(n):
    यदि n <= 1:
        वापस करो n
    अन्यथा:
        वापस करो Fibonacci(n - 1) + Fibonacci(n - 2)

समय जटिलता की गणना

सामान्य मामला (General Case):

इस एल्गोरिदम की समय जटिलता O(2^n) है। इसका मतलब है कि हर बार फ़ंक्शन कॉल में दो और फ़ंक्शन कॉल होते हैं।
व्याख्या:

जब हम Fibonacci(n) कॉल करते हैं, तो हमें Fibonacci(n-1) और Fibonacci(n-2) दोनों को कॉल करना पड़ता है। हर एक कॉल के लिए हमें दो नई कॉल्स करनी होती हैं। इससे हमें एक बाइनरी ट्री जैसा निर्माण मिलता है, जिसके नोड्स की संख्या 2^n के करीब होती है।

उदाहरण

चलिये हम Fibonacci(5) का उदाहरण लेते हैं:

Fibonacci(5)
 ├─ Fibonacci(4)
 │  ├─ Fibonacci(3)
 │  │  ├─ Fibonacci(2)
 │  │  │  ├─ Fibonacci(1)
 │  │  │  └─ Fibonacci(0)
 │  │  └─ Fibonacci(1)
 │  └─ Fibonacci(2)
 │     ├─ Fibonacci(1)
 │     └─ Fibonacci(0)
 └─ Fibonacci(3)
    ├─ Fibonacci(2)
    │  ├─ Fibonacci(1)
    │  └─ Fibonacci(0)
    └─ Fibonacci(1)

Types of Time Complexity in Data Structure in Hindi  |  समय जटिलता के प्रकार :

  • O(1) - स्थिर समय जटिलता (Constant Time Complexity): यदि एल्गोरिदम का निष्पादन समय इनपुट के आकार पर निर्भर नहीं करता है।
  • O(n) - रेखीय समय जटिलता (Linear Time Complexity): जब एल्गोरिदम का निष्पादन समय इनपुट के आकार के सीधे अनुपात में बढ़ता है।
  • O(n^2) - क्वाड्रैटिक समय जटिलता (Quadratic Time Complexity): यह तब होता है जब एल्गोरिदम में दो नेस्टेड लूप होते हैं।
  • O(log n) - लोगरिद्मिक समय जटिलता (Logarithmic Time Complexity): यह तब होता है जब एल्गोरिदम हर बार इनपुट को आधा करता है, जैसे बाइनरी सर्च।