Space 算法的复杂度

Space complexity of algo

这个函数的space复杂度是不是N^2输出的是一个链表?

我正在学习 space 学校的复杂性,并且被困在这个问题上。

def myHealthcare(record):
    l2=[]
    count=0 # num of records generated and the specific time 
    for i in range(record):
        l=[]
        now = datetime.datetime.now()
        ts = now.strftime("%d/%m/%Y %H:%M:%S") # str timestamp 
        ts=ts +' '+str(count)
        l.append(ts)
        l.append(rand.randint(36,39)) #temp
        l.append(rand.randint(55,100)) #hr
        l.append(rand.randint(55,100)) #Pulse
        l.append(rand.randint(120,121)) #bp
        l.append(rand.randint(11,17)) #respiratory rate
        l.append(rand.randint(93,100)) #oxygen sat
        l.append(round(rand.uniform(7.1,7.6),1)) #pH
        l2.append(l)
        count+=1
    return l2

链表的space复杂度不是二次的;每个链表节点占用一定数量的辅助内存,因此整个数据结构使用的辅助内存为 O(n) 其中 n 是节点数。

但是,您也在构造字符串并将它们存储在内存中。字符串 str(count) 是在每次迭代中附加到列表 l 的字符串的一部分,并且该字符串的长度为 O(log n) 因为count 是最大 n 的数字,当表示为字符串时它有 O(log n) 位数字。因此,该算法的总体 space 复杂度为 O(n log n)。