确定时间复杂性



有人能帮助确定此代码的时间复杂性吗。这只是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(,因为您不执行任何循环来遍历参数数组,也不递归调用

最新更新