Java 查找数组中重复元素时嵌套for循环的2的大Oh表示法
查询:在上述嵌套for循环中-->第一个for循环有n次迭代 第二个循环有n-1次迭代 所以发生了n(n-1)次迭代。Java 查找数组中重复元素时嵌套for循环的2的大Oh表示法,java,arrays,loops,duplicates,big-o,Java,Arrays,Loops,Duplicates,Big O,查询:在上述嵌套for循环中-->第一个for循环有n次迭代 第二个循环有n-1次迭代 所以发生了n(n-1)次迭代。 但实际上是n(n-1)/2倍。想知道这是怎么一个又一半的时间。需要帮助。嵌套循环算法的最坏情况时间复杂度为O(n2) 当进行渐近分析时,低阶项和常数因子被忽略,因此无论你是否有n(n-1),n*(n-1)/2,n*(n-5)/6等等。重要的一点是,你在这些表达式中有最高阶,这就是时间复杂性。大o不关心常数。而大o只关心增长最快的价值。n(n-1)/2==n^2@Siva如果你已
但实际上是n(n-1)/2倍。想知道这是怎么一个又一半的时间。需要帮助。嵌套循环算法的最坏情况时间复杂度为O(n2)
当进行渐近分析时,低阶项和常数因子被忽略,因此无论你是否有
n(n-1)
,n*(n-1)/2
,n*(n-5)/6
等等。重要的一点是,你在这些表达式中有最高阶,这就是时间复杂性。大o不关心常数。而大o只关心增长最快的价值。n(n-1)/2==n^2@Siva如果你已经知道了,那么我不确定你的问题是什么?它实际上不是n*(n-1)
iterations。迭代次数为(n-1)+(n-2)+…+(n-(n-1))
简化为n*(n-1)/2
@NickParsons,这是一个打字错误,现在更新。感谢您解释中间循环迭代。@Davinci-heyyy上尉得到了它,谢谢最后Cheerrszz:)假设n=4,就像打印3+2+1=6次语句,得到4(4-1)/2=12/2-->6:)谢谢大家。
for i=1 to n
for j=i+1 to n
if A[i]==B[j] return TRUE
return FALSE