Java 双嵌套for循环之间的复杂性差异?(爪哇)
这两个嵌套for循环在性能和复杂性方面有什么不同Java 双嵌套for循环之间的复杂性差异?(爪哇),java,performance,for-loop,time,Java,Performance,For Loop,Time,这两个嵌套for循环在性能和复杂性方面有什么不同 for(int i = 0; i < l.length; i++) { for(int j = 0; j <= i; j++) { //do something } } for(int i=0;iO(n**2) 第二个循环:n*n->O(n**2) 因此,第二个环路的速度几乎是第一个环路的两倍,而辅助环路的速度是相同的 # ## ### #### ##### ######
for(int i = 0; i < l.length; i++) {
for(int j = 0; j <= i; j++) {
//do something
}
}
for(int i=0;i 对于(int j=0;j而言,第一个循环的速度大约是第二个循环的两倍,但就渐近时间复杂度而言,它们是相同的:
O(N^2)
你可以用图形来思考:想象一个正方形,每边有N个单位。第二个循环访问所有单位的正方形
######
######
######
######
######
######
第一个循环访问属于覆盖一半正方形的三角形的点:
#
##
###
####
#####
######
两个环都具有相同的辅助行为-O(n**2)
第一个循环:1+2+…+n=n(n+1)/2=n*n/2+n/2->O(n**2)
第二个循环:n*n->O(n**2)
因此,第二个环路的速度几乎是第一个环路的两倍,而辅助环路的速度是相同的
#
##
###
####
#####
######