for (int front = 1; front < intArray.length; front++)
{
for (int i = 0; i < intArray.length - front; i++)
{
if (intArray[i] > intArray[i + 1])
{
int temp = intArray[i];
intArray[i] = intArray[i + 1];
intArray[i + 1] = temp;
}
}
}
内部循环正在迭代: n + (n-1) + (n-2) + (n-3) + ... + 1 次。
外部循环正在迭代:n 次。
所以你得到 n *(数字 1 到 n 的总和)
那不是 n * ( n*(n+1)/2 ) = n * ( (n^2) + n/2 )
哪个是 (n^3) + (n^2)/2 = O(n^3) ?
我很肯定我做错了。为什么不是 O(n^3)?