确定时间复杂度

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),因为你没有做任何循环来遍历你的参数数组,也没有递归调用