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

C++ में काउंटर इंक्रीमेंट के लिए परिशोधित विश्लेषण (Amortized Analysis)


परिशोधित विश्लेषण क्या है?

ऑपरेशन के अनुक्रम के लिए औसत समय जटिलता, भले ही कुछ ऑपरेशन महंगे हों। यह औसत-मामला विश्लेषण नहीं है, बल्कि कई ऑपरेशनों पर वितरित सबसे खराब स्थिति है।

बाइनरी काउंटर उदाहरण

k-बिट बाइनरी काउंटर पर इंक्रीमेंट ऑपरेशन। अंतिम बिट से पहला 0 ढूंढें, उसे 1 बनाएं और बाद के सभी बिट्स को 0 करें।

उदाहरण: 00000000 → 00000001 → 00000010 → 00000011 → 00000100 → ...

विश्लेषण

  • पहला बिट हर बार फ्लिप होता है: n बार
  • दूसरा बिट हर दूसरी बार: n/2 बार
  • तीसरा बिट हर चौथी बार: n/4 बार
  • कुल फ्लिप: n + n/2 + n/4 + ... < 2n
  • परिशोधित लागत प्रति ऑपरेशन: O(2n)/n = O(1)

उदाहरण कोड

#include <iostream>
using namespace std;

int main() {
    int number[] = {1, 0, 0, 1, 0, 1, 1, 1};
    int length = 8;
    int i = length - 1;
    
    while (number[i] == 1) {
        number[i] = 0;
        i--;
    }
    if (i >= 0)
        number[i] = 1;
    
    for (int i = 0; i < length; i++)
        cout << number[i] << " ";
    return 0;
}

आउटपुट

1 0 0 1 1 0 0 0
  1. C++ प्रोग्राम बाईसेक्शन मेथड के लिए C++ प्रोग्राम बाईसेक्शन मेथड के लिए

    फंक्शन f(x) दिया गया है जिसमें संख्या a और b हैं जहां, f(a) * f(b) > 0 और फंक्शन f(x) a और b के बीच होना चाहिए यानी f(x) = [a, b]। कार्य बाईसेक्शन मेथड का उपयोग करके फंक्शन f(x) में अंतराल a और b के बीच स्थित रूट का मान खोजना है।बाईसेक्शन मेथड क्या है?बाईसेक्शन मेथड का उपयोग फंक्शन f(x) में दिए ग

  1. C++ में पिरामिड के आयतन का प्रोग्राम C++ में पिरामिड के आयतन का प्रोग्राम

    पिरामिड के बेस के प्रकार के आधार पर भुजाएं दी गई हैं, कार्य पिरामिड का आयतन गणना करना है।पिरामिड एक 3-D आकृति है जिसकी बाहरी सतहें त्रिकोणीय हैं जो सामान्य बिंदु पर मिलती हैं जिससे पिरामिड का तीक्ष्ण किनारा बनता है। पिरामिड का आयतन उसके बेस के प्रकार पर निर्भर करता है।पिरामिड के बेस के विभिन्न प्रका

  1. C++ में क्विकसॉर्ट प्रोग्राम C++ में क्विकसॉर्ट प्रोग्राम

    क्विकसॉर्ट क्या है? क्विकसॉर्ट एक सॉर्टिंग तकनीक है जो अनसॉर्टेड सूची (सरणी) को सॉर्ट करने के लिए तुलनाओं का उपयोग करती है। क्विकसॉर्ट को पार्टीशन एक्सचेंज सॉर्ट के नाम से भी जाना जाता है। यह एक स्थिर सॉर्ट नहीं है, क्योंकि समान सॉर्ट आइटम्स का सापेक्ष क्रम संरक्षित नहीं रहता। क्विकसॉर्ट एक सरणी प