用于运行时分析的Java嵌套循环
假设我有以下for循环:用于运行时分析的Java嵌套循环,java,algorithm,runtime,analysis,Java,Algorithm,Runtime,Analysis,假设我有以下for循环: for (int i = 1; i < n; i*=2) { for (int j = 1; j < i; j*=2) { //constant functions here } } for(int i=1;i
for (int i = 1; i < n; i*=2) {
for (int j = 1; j < i; j*=2) {
//constant functions here
}
}
for(int i=1;i
外部循环将运行
log(n)
次,我的问题是内部循环将运行多少次。对于一些s
,我们可以将j
近似为2s,当2sr
,它可以再次近似为2r。如果我们取两边的对数,我们得到s1
时间,因为i=2
,在第二次迭代中,内循环运行2
时间,因为i=4
,并且。。。在外循环的第k次迭代中,内循环运行k次
,因为i=2k,所以迭代次数为:
1 + 2 + ... + k = k(k+1)/2
所以答案是O(Log2(n)2)i=0,所以它将成为一个无限循环,因为i*=2总是变成0对不起,我关于i和j的起始值的错误。修正了,所以他们现在都从1开始。