কম্পিউটার টিউটোরিয়াল

C++-এ টাইম কমপ্লেক্সিটি অ্যানালিসিস প্র্যাকটিস (Practice Questions on Time Complexity Analysis)

টাইম কমপ্লেক্সিটি (Time Complexity) হলো কোনো অ্যালগরিদমকে সম্পন্ন হতে লেগে যাওয়া সময়। এটি অ্যালগরিদমের দক্ষতা ও তুলনামূলক বিশ্লেষণের গুরুত্বপূর্ণ মেট্রিক।

প্র্যাকটিস উদাহরণ ও সমাধান

উদাহরণ ১

for(i = 0; i < n; i++) {
    cout << i << " ";
    i++;
}

লুপ n পর্যন্ত চলে কিন্তু i প্রতিবার ২ করে বেড়ে। তাই টাইম কমপ্লেক্সিটি = O(n/2) = O(n)।

উদাহরণ ২

for(i = 0; i < n; i++) {
    for(j = 0; j < n; j++) {
        cout << i << " ";
    }
}

বাহ্যিক ও অভ্যন্তর লুপ দুটোই n বার চলে। টাইম কমপ্লেক্সিটি = O(n²)।

উদাহরণ ৩

int i = n;
while(i) {
    cout << i << " ";
    i = i / 2;
}

প্রতিবার i আধা হয়। সিরিজ: n, n/2, n/4... টাইম কমপ্লেক্সিটি = O(log n)।

উদাহরণ ৪

if(i > j) {
    j > 23 ? cout << j : cout << i;
}

দুটি কন্ডিশনাল স্টেটমেন্ট, প্রতিটির কমপ্লেক্সিটি O(1)। মোট O(2) = O(1) (কনস্ট্যান্ট)।

উদাহরণ ৫

for(i = 0; i < n; i++) {
    for(j = 1; j < n; j = j * 2) {
        cout << i << " ";
    }
}

বাহ্যিক লুপ n বার, অভ্যন্তর লুপ log n বার। টাইম কমপ্লেক্সিটি = O(n log n)।

  1. অ্যাসিম্পটোটিক অ্যানালিসিস

  2. অমোরটাইজড কমপ্লেক্সিটি

  3. অ্যাসিম্পটোটিক কমপ্লেক্সিটি

  4. সি/সি++-এ বারkeley-এর অ্যালগরিদম