मैं ओ नोटेशन में निम्नलिखित एल्गोरिदम के लिए चलने वाले समय को परिभाषित करने के लिए संघर्ष करता हूं। मेरा पहला अनुमान ओ (एन) था, लेकिन पुनरावृत्तियों और लागू होने वाले नंबर के बीच का अंतर स्थिर नहीं है। मैंने इसे गलत तरीके से कैसे परिभाषित किया है?हल करें: टी (एन) = टी (एन/2) + एन/2 + 1
public int function (int n)
{
if (n == 0) {
return 0;
}
int i = 1;
int j = n ;
while (i < j)
{
i = i + 1;
j = j - 1;
}
return function (i - 1) + 1;
}
सटीक होना करने के लिए, थोड़ा-ओ ऊपरी सीमा के लिए है, इसलिए वहाँ कई संभावित जवाब नहीं है। उदाहरण के लिए यह सच है, लेकिन यह भ्रामक है कि यह एल्गोरिदम ओ (एन * एन) है। जब संभव हो, तो आमतौर पर चलने वाले समय के लिए बड़े-थेटा का उपयोग करना बेहतर होता है। स्वीकार्य उत्तर में विश्लेषण बड़े-थेटा के लिए समान रूप से मान्य है। –