Algorithm 当给定一个数组';s尺寸范围

Algorithm 当给定一个数组';s尺寸范围,algorithm,big-o,complexity-theory,Algorithm,Big O,Complexity Theory,在我的一节CS课上,我们复习了大O符号。对于像下面这样的循环,大O就是O(n) for(inti=0;i

在我的一节CS课上,我们复习了大O符号。对于像下面这样的循环,大O就是O(n)

for(inti=0;i

这个循环是O(n),因为n的大小未知,但是如果知道n的大小范围呢?例如,假设您知道传入的数组的大小可以是1到10,而其他的则没有。上面循环的O(n)是仍然是O(n),还是会变为O(1)?

大O是关于问题的复杂性如何随着输入的大小而扩展。在您的情况下,输入的大小不会改变。因此,将其称为O(1)似乎是合适的

出现这种情况的一个例子是,当您近似计算一个需要全局信息的计算时。您可以使用局部信息(仅过去的K个单词,或图形中最近的K个节点,或固定数组长度的情况)而不是所有n项来近似此值


K可以相当大,但就渐近性而言,它被忽略,因为它是固定的。为了提醒人们这一点,仍然写O(K)是很常见的。请注意,对于任何常数K,O(K)中的函数集与O(1)中的函数集完全相同。

您好,您的问题得到了回答吗?如果是这样的话,你能接受并投票表决吗?如果没有,可以澄清什么?
for (int i = 0; i < n; i++) { // code for something here}