का बिग-ओह खोजने का तरीका समझने में मदद की ज़रूरत है, मेरा कंप्यूटर साइंस II फ़ाइनल कल है, और मुझे कोड की सेगमेंट के लिए बिग-ओह को कैसे ढूंढें, यह समझने में कुछ मदद चाहिए। मैंने इंटरनेट की खोज की है और मुझे यह समझने में सक्षम नहीं है कि मुझे इसे कैसे समझना है।मुझे कोड कोड
for(int pass = 1; i <= n; pass++)
{
for(int index = 0; index < n; index++)
for(int count = 1; count < n; count++)
{
//O(1) things here.
}
}
}
हम एल्गोरिथ्म के आदेश (बिग-ओह) को खोजने के लिए अपेक्षा की जाती है:
यहाँ अंतिम हमारे नमूना से एक समस्या है।
मुझे लगता है कि हे कि यह होगा (एन^3), और यहाँ कैसे मुझे लगता है कि इस निष्कर्ष
for(int pass = 1; i <= n; pass++) // Evaluates n times
{
for(int index = 0; index < n; index++) // Evaluates n * (n+1) times
for(int count = 1; count < n; count++) // Evaluates n * n * (n) times
{
//O(1) things here.
}
}
}
// T(n) = (n) + (n^2 + n) + n^3
// T(n) = n^3 + n^2 + 2n
// T(n) <= c*f(x)
// n^3 + n^2 + 2n <= c * (n^3)
// O(n) = n^3
मैं सिर्फ यकीन है कि अगर मैं इसे सही ढंग से कर रहा हूँ नहीं कर रहा हूँ के लिए आया था है। क्या कोई इस तरह के कोड का मूल्यांकन कैसे कर सकता है और/या मेरे उत्तर की पुष्टि कर सकता है?
आपका उत्तर सही है, लेकिन प्रत्येक लूप के लिए आप जिन गणनाओं की गणना करते हैं, वह संख्या नहीं है। पहला और दूसरा दोनों पुनरावृत्त 'n' बार, और वें अजीब itrates 'एन - 1' बार। जाहिर है कि परिणाम को प्रभावित नहीं करता है। –
चीजें बहुत खराब हैं यदि आपको वास्तविक दुनिया की समस्या को हल करने के लिए ओ (एन^3) एल्गोरिदम का उपयोग करना चाहिए। – john
@john: यह भी कई परिस्थितियों और 'n' :-) – deepmax