繁体   English   中英

确定时间复杂度

[英]Determine the time complexity

有人可以帮助确定此代码的时间复杂度。 这只是 O(1) 吗? 如果不是,有人可以帮忙解释一下吗? 我不是 100% 确定我的答案,所以我需要第二个意见,看看这个 function 是否为 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),因为您不执行任何循环来遍历参数数组,也不执行递归调用

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM