如果我们有'm
'外部IF-ELSE语句,并且每个外部IF-ELSE语句包含'n
' IF-ELSE语句,那么代码的时间复杂度是多少?
例如:
if(Condition 1){
if(Condition 2){
//Do something
}
.
. //'n' inner IF-ELSE statements
.
else{
//Do something else
}
}
.
. //'m' outer IF-ELSE Statements
.
else{
//Do something else
}
2条答案
按热度按时间dtcbnfnu1#
时间复杂度(最坏情况)为O(m+n)。它将检查外部else ifs的m个条件,并在找到真条件后,将检查内部else ifs的n个条件。
ltskdhd12#
这里的大O符号不是 O(m+n)。请检查是否有错别字,或者如果你不知道你在说什么就不要回答……
(also,您已经成功地解释了一个嵌套循环场景,但使用了if语句作为代码。)
如果你在一个苹果果园...你必须检查有多少苹果挂在果园里...但有一个 Storm 和一些树可能已经倒下了在夜间...
然后,你必须首先,四处走动,检查每棵树是否都站起来了..每次你到达一棵树时,你都会数它的苹果。树的是外部循环(顺便说一句,你解释了嵌套循环,但写了if语句),苹果是内部循环。
Big-O 分析等式的上限...... aka - bigO将是一种评估,假设每棵树都是站立的,每棵树都有一棵树可能持有的最大数量的苹果。
即使你用英语写了一半的代码,而不是使用循环,你的问题的答案是Big-O(N^2)
....它不是(m+n)...首先-你不需要保留两个变量...你只需要使用n..第二..它不是两个加在一起。如果果园里有20棵树,没有一棵倒下,每棵树上都结满了苹果,每棵树最多能结50个苹果……(果园里会有70个苹果吗???不。)会有1000个苹果。
停止充斥互联网的错误信息