int currentMinIndex = 0;
for (int front = 0; front < intArray.length; front++)
{
currentMinIndex = front;
for (int i = front; i < intArray.length; i++)
{
if (intArray[i] < intArray[currentMinIndex])
{
currentMinIndex = i;
}
}
int tmp = intArray[front];
intArray[front] = intArray[currentMinIndex];
intArray[currentMinIndex] = tmp;
}
आंतरिक लूप पुनरावृत्ति है: एन + (एन -1) + (एन -2) + (एन -3) + ... + 1 बार।बबल सॉर्ट ओ (एन^2) क्यों है?
बाहरी पाश पुनरावृत्ति है: एन बार।
तो तुम n *
कि n * (एन * (n + 1)/2) नहीं है (संख्या n करने के लिए 1 का योग) मिल = n * ((एन^2) + एन/2)
कौन सा होगा (एन^3) + (एन^2)/2 = ओ (एन^3)?
मैं सकारात्मक हूं मैं यह गलत कर रहा हूं। ओ क्यों नहीं है (एन^3)?
आप बाहरी 'एन' को दो बार गिन रहे हैं। आपका आंतरिक पाश स्वयं ओ (एन) है। –
नाइटपिक नहीं है लेकिन आपके द्वारा दिखाए गए एल्गोरिदम एक [चयन क्रम] (http://en.wikipedia.org/wiki/Selection_sort) नहीं है [बबल सॉर्ट] (http://en.wikipedia.org/wiki/Bubble_sort) –
पिछले हफ्ते, मैंने एसिम्प्टोटिक जटिलता के बारे में लेख लिखा है और संयोग से, मैं उदाहरण के रूप में बबल प्रकार का उपयोग करता हूं। इसे एक शॉट दें :-) (http://en.algoritmy.net/article/44682/Asymptotic- अपूर्णता)। आपकी गलती है, क्योंकि यह हेनक द्वारा सही ढंग से कहा गया था, कि आंतरिक लूप ओ (एन) है। ओ (एन^2) - अंकगणितीय क्रम का योग दोनों लूपों की जटिलता एक साथ है। – malejpavouk