如何解决使用Big-O表示法的该算法的时间复杂度
我必须找到我创建的伪代码的时间复杂度,并使用Big-O表示法进行指定。问题是当我在嵌套的for循环中有一个if语句时,我不知道如何计算它。
这是我的伪代码,括号中是操作数:
Algorithm largestProduct(A)
Input array A
Output largest product value of two elements in array A,the values and their indices
index1 ← 0 (1)
index2 ← 0 (1)
n ← A length (1)
max ← 0 (1)
for i ← 0 to n-1 do (n)
for j ← i + 1 to n do (n^2)
if max < A[ i ] * A[ j ] then (?)
max ← A[ i ] * A[ j ]
index1 ← i
index2 ← j
return max,A[index1],index1,A[index2],index2
预先感谢您的帮助。
解决方法
由于if
语句中的操作及其条件不影响迭代次数,并且它们是单个操作(常量),因此可以将if
语句视为{{1 }}。
嵌套O(1)
循环确实进行了for
个迭代,因此,运行O(n^2)
次的操作数量恒定,使其整体O(n^2)
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。