টাইম কমপ্লেক্সিটি (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)।