伪代码如下如何计算这个程序的时间复杂度

Algorithm MinValue(A, n):

Input: An integer array A of size n //1
Output: The smallest value in A

minValue <- A[0] //1
for k=1 to n-1 do //n
if (minValue > A[k]) then //n-1
minValue <- A[k] //1
return minValue  //1

所以,它是1+1+n+n-1+1+1=2n+3,对吗?
这是一个更简单的程序
算法MaxInt(a,b):
Input: Two integers a and b //1
Output: The larger of the two integers

if a > b then //1
return a //1
else
return b. // 1

总操作数=4,对吗?
有人能告诉我正确的答案吗?谢谢

最佳答案

你很亲密。
在第一个程序中,执行minValue <- A[k]的次数可以在最坏的情况下n-1(如果数字按降序排序)。
因此,操作总数受1+n-1+n-1+n-1+1=3*n-1=o(n)的约束。
对于第二个程序,执行return areturn b因此,操作数是2(条件+所选的返回语句)。

关于algorithm - 如何计算条件语句和循环的时间复杂度,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49382969/

10-12 17:34