gpt4 book ai didi

c - 时间 计算复杂度?

转载 作者:行者123 更新时间:2023-11-30 20:52:28 24 4
gpt4 key购买 nike

我下面有这个排序代码,它是冒泡排序,但我认为这个代码不完全是 O(N^2) 。我想知道下面这段代码的时间计算复杂度(用大 O 表示)是多少。我猜是 O(N.logN)。

这里给出的代码只是作为示例,并不声称它是可编译的。

for(i = 0; i < n-1; i++)
{
for(j = 0; j < n-i-1; j++)
{
if (a[j+1] < a[j])
{
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}

最佳答案

My guess it is O(N.logN).

为什么要猜测?看看实际发生了什么......

第一次通过外循环时,i == 0。这意味着 j 的范围从 0 到 n-1。

第二次时,i == 1,因此 j 的范围为 0 到 n-2。

第三次,i == 2,所以 j 的范围从 0 到 n-3。

...

最后一次,i == n-1,因此 j 的范围从 0 到 0。

因此,操作总数为 n-1 + n-2 + n-3 + ... + 0。

总和 Σi, i=0..n-1 是多少?现在将其转换为大 O 界限。

关于c - 时间 计算复杂度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9110248/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com