我有一个迭代算法,在每次迭代中,计算量逐渐减少。这是我的算法的说明:
Input size: n
和Total iteration = k
iter 1: time taken -> f1 * n
iter 2: time taken -> f2 * n
iter 3: time taken -> f3 * n
...
iter k: time taken -> fk * n
在哪里f1 > f2 > f3 >...> fk
和0 <= f1, f2,...,fk <= 1
问题:这个算法的时间复杂度是多少?是吗Big-O(klog n)
Update:
我认为这个问题似乎很模糊。我会用文字来解释:
我的算法的输入是n
,我将在k
迭代中运行它。但在每次迭代中,输入大小都会减少一个因子,即unknown
. 减少没有模式。
例如:
iter 1: input size = n (always n)
iter 2: input size = n/2 (can change)
iter 3: input size = n/5 (can change)
iter 4: input size = n/8 (can change)
...
iter k: input size = n/10 (can change)