Python 如果我知道k<;=N
我有以下算法:Python 如果我知道k<;=N,python,algorithm,complexity-theory,Python,Algorithm,Complexity Theory,我有以下算法: def neat_algorithm(n, k): assert k <= n assert k > 0 sum = 0 for i in range(n): for j in range(n): sum += 1 for i in range(n-k,n): sum += 1 def整洁算法(n,k): 断言k0 总和=0 对于范围(n)中的i: 对于范围(n)内
def neat_algorithm(n, k):
assert k <= n
assert k > 0
sum = 0
for i in range(n):
for j in range(n):
sum += 1
for i in range(n-k,n):
sum += 1
def整洁算法(n,k):
断言k0
总和=0
对于范围(n)中的i:
对于范围(n)内的j:
总和+=1
对于范围内的i(n-k,n):
总和+=1
乍一看,该算法的运行时间似乎是Θ(n^2)+Θ(k),但除非1,否则它将失败≤ K≤ n、 如果k=n,则会出现最坏的情况。既然我知道关于k的这些事情,那么说最坏情况下的运行时间实际上是Θ(n^2)+Θ(n),或者更确切地说是Θ(n^2),或者我需要在运行时间的语句中保留k吗?在这种特殊情况下,你可以简化Θ(n2+k)=Θ(n2),因为k≤ N≤ n2,所以n2项占主导地位
一般来说,即使0