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

C++ में रोचक समय जटिलता प्रश्न


समय जटिलता विश्लेषण

विधि 1

void counter(int n) {
    for (int i = 0; i < n; i++) {
        for (int j = 1; j < n; j += i) {
            cout << i << " " << j;
        }
        cout << endl;
    }
}

आंतरिक लूप n/i बार चलता है। कुल जटिलता:

Σ(n/i) for i=1 to n = n × (1 + 1/2 + 1/3 + ... + 1/n) = n × O(log n) = O(n log n)

विधि 2

void counter(int n) {
    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= log(i); j++) {
            cout << i << " " << j;
        }
    }
}

कुल जटिलता: Σ log(i) for i=1 to n = log(n!) = O(log n!)

  1. एमोर्टाइज़्ड कॉम्प्लेक्सिटी (परिशोधित जटिलता) एमोर्टाइज़्ड कॉम्प्लेक्सिटी (परिशोधित जटिलता)

    एमोर्टाइज़्ड एनालिसिसयह विश्लेषण तब उपयोग किया जाता है जब कभी-कभार होने वाला ऑपरेशन बहुत धीमा होता है, लेकिन अधिकांश ऑपरेशन जो बहुत बार निष्पादित होते हैं, वे तेज़ होते हैं। डेटा संरचनाओं में हमें हैश टेबल, डिसजॉइंट सेट आदि के लिए एमोर्टाइज़्ड विश्लेषण की आवश्यकता होती है।हैश टेबल में, अधिकांश समय स

  1. एसिम्प्टोटिक कॉम्प्लेक्सिटी (आशय जटिलता) एसिम्प्टोटिक कॉम्प्लेक्सिटी (आशय जटिलता)

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

  1. C/C++ में बर्कले का एल्गोरिथ्म C/C++ में बर्कले का एल्गोरिथ्म

    बर्कले का एल्गोरिथ्म वितरित प्रणालियों में क्लॉक सिंक्रोनाइज़ेशन के लिए उपयोग किया जाने वाला एक एल्गोरिथ्म है। यह एल्गोरिथ्म उन मामलों में उपयोग किया जाता है जब वितरित नेटवर्क के कुछ या सभी सिस्टम में निम्नलिखित समस्याएं होती हैं: A. मशीन के पास सटीक समय स्रोत नहीं है। B. नेटवर्क या मशीन के पास UTC