if语句的执行时间是多少



此代码中的if语句的t(n(是什么?

 public static int min(int[] v)
        {
            int x = v[0];
            for (int i = 0; i < v.Length; i++)
            {
                if (x >v[i])
                    x = v[i];
            }
            return x;
        }

我认为如果本身将被执行n次,但是我们的老师说n^2我不明白为什么?

o(1(。

if本身会在恒定时间内执行。if内部的条件可能具有任何时间的复杂性,因此您需要注意。

示例的更新版本显示 int[] v作为序列的数据,这意味着访问i TH元素为O(1(,min的总时间为O(n(,如该方法的标准实现所预期的。

请注意,在不知道代码中使用的数据结构的情况下,无法提供正确的估计。可以猜测,原始示例代码中的y是标准数组,但是您使用的算法可能并非如此。例如,如果您将链接列表用作索引结构的数据存储(即,您已实现了IList<...>作为节点的链接列表(,而对i元素的访问也将是O(N(,即使通常X [I]为O(1((对于数组。

最新更新