【发布时间】:2020-12-02 12:08:47
【问题描述】:
我正在尝试分析下面的这段代码。我希望计算复杂性和操作/迭代的数量(这会导致复杂性)。我的猜测是复杂度是 O(n^2),因为我嵌套了 for 循环。然而,在内部循环中,值正在切换,替换位置。这个操作不会使算法重复多次,因此它不仅仅是 O(n^2),还是只有一个 while 循环才有可能?如何找到完成的迭代/操作的确切数量?
for (int i = 0; i < b.Length; i++)
{
for (int j = i + 1; j < b.Length; j++)
{
if (b[i] > b[j])
{
t = b[i];
b[i] = b[j];
b[j] = t;
}
}
}
【问题讨论】:
标签: java time-complexity