Algorithm 这个程序有多复杂是n^2*logn还是什么? lst=list(映射(int,input().split(“”))) def中值(x): x=已排序(x) mid=len(x)//2 如果(len(x)%2==0): 返回(x[mid-1]+x[mid])/2 返回x[中间] medlist=[] 对于范围(1,len(lst)+1)内的i: a=中值(lst[:i]) 印刷品(a) medlist.append(a) 医疗名单

Algorithm 这个程序有多复杂是n^2*logn还是什么? lst=list(映射(int,input().split(“”))) def中值(x): x=已排序(x) mid=len(x)//2 如果(len(x)%2==0): 返回(x[mid-1]+x[mid])/2 返回x[中间] medlist=[] 对于范围(1,len(lst)+1)内的i: a=中值(lst[:i]) 印刷品(a) medlist.append(a) 医疗名单,algorithm,time-complexity,complexity-theory,Algorithm,Time Complexity,Complexity Theory,这个程序的时间复杂度是多少?它是n^2*log(n)还是其他什么?你可以这样分解它: for i in range(1,len(lst)+1): .... 这会对forloop中的任何内容执行n次。所以我们已经知道运行时间将是O(nx forloop中的任何值) 通过分析forloop,我们可以看到一些常量操作和对median的调用。现在,中位数的大小很重要。这里的长度是1,2,3,4,…,n。平均而言,这是n/2,因此我们可以说它的大小是O(n) 分析中值函数,我们看到它是排序,我们

这个程序的时间复杂度是多少?它是n^2*log(n)还是其他什么?

你可以这样分解它:

for i in range(1,len(lst)+1):
    ....
这会对forloop中的任何内容执行n次。所以我们已经知道运行时间将是
O(nx forloop中的任何值)

通过分析forloop,我们可以看到一些常量操作和对
median
的调用。现在,中位数的大小很重要。这里的长度是
1,2,3,4,…,n
。平均而言,这是
n/2
,因此我们可以说它的大小是
O(n)

分析中值函数,我们看到它是排序,我们知道它是
O(n logn)
加上一些常量运算。所以我们可以说中值函数是
O(nlogn)


将其插入到第一个函数中,我们可以看到顺序是
O(n*n log n)
O(n^2 log n)

Yes;为什么你认为可能不是呢?我不知道我只是在学习,所以我想确认一下我的计算是对还是错。