确定时间复杂度
Determine the time complexity
谁能帮忙确定这段代码的时间复杂度。这只是 O(1) 吗?如果不是有人可以帮忙解释一下吗?我不是 100% 确定我的答案所以我需要第二个意见看看这个函数是否是 O(1)。
public static void secMax(int[] arr)
{
int n = arr.length - 1;
if (some condition not relate to n)
{
if(arr[a] * arr[b] > temp)
{
//print
}
else
{
//do something
}
}
else
{
if(arr[y] * arr[x] > second)
{
//something
}
else
{
//something else
}
}
}
复杂度为O(1)。您没有任何遍历数组的循环。而且您没有任何递归调用。您的方法只有几个 if/else 条件。如果您仔细检查,您的方法只会执行固定数量的操作,并且不会因输入数组长度而异。所以时间复杂度是常数。
复杂度为O(1)。该程序只是简单地从上到下通过一些条件语句。没有代码块执行超过一次,因此它具有恒定的复杂性。
它的时间复杂度是 O(1),因为你没有做任何循环来遍历你的参数数组,也没有递归调用
谁能帮忙确定这段代码的时间复杂度。这只是 O(1) 吗?如果不是有人可以帮忙解释一下吗?我不是 100% 确定我的答案所以我需要第二个意见看看这个函数是否是 O(1)。
public static void secMax(int[] arr)
{
int n = arr.length - 1;
if (some condition not relate to n)
{
if(arr[a] * arr[b] > temp)
{
//print
}
else
{
//do something
}
}
else
{
if(arr[y] * arr[x] > second)
{
//something
}
else
{
//something else
}
}
}
复杂度为O(1)。您没有任何遍历数组的循环。而且您没有任何递归调用。您的方法只有几个 if/else 条件。如果您仔细检查,您的方法只会执行固定数量的操作,并且不会因输入数组长度而异。所以时间复杂度是常数。
复杂度为O(1)。该程序只是简单地从上到下通过一些条件语句。没有代码块执行超过一次,因此它具有恒定的复杂性。
它的时间复杂度是 O(1),因为你没有做任何循环来遍历你的参数数组,也没有递归调用