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)?
n
。你的内部循环本身是 O(n)。 - H H