此方法使用多少指令来查找表中的最小值?

时间:2017-11-08 10:25:38

标签: java algorithm runtime time-complexity big-o

public static int min1(int[] a) { 
if (a.length < 1)
throw new IllegalArgumentException("a is empty"); 

int m = 0; 
for (int i = 1; i < a.length; i++) {
if (a[i] < a[m]) m = i;
}

return m;
}

给出的输入:

a = {4, 17, 10, 6, 1, 15, 3, 18}

我试图逐步解决这个问题。查看每个简单表达式和for循环。如果声明 - &gt; 2 int m = 0 - &gt; 2(声明和初始化)。我最后得到了48个答案。

我听说有可能将此简化为函数:

6(n-1)+x+9

其中n是数组中的总元素,其中x是if语句出现的次数,即1。我知道这个方法有一个O(n)运行时。 正确答案是52。

我想了解我们如何能够推导出这个功能。它背后的逻辑。

提前致谢!

0 个答案:

没有答案