2024-05-23 14:04:34 发布
网友
我有一个列表,需要根据列表的长度进行排序。我现在要做的是首先将列表插入主列表,然后对主列表进行排序,给出key=len。此步骤将花费n + nlg(n)的总时间。在主列表中输入数据时,是否可以维护已排序的列表?它可以用对分(或者有更好的方法)来完成吗?如果是的话,它的性能会比n + nlg(n)更好吗?你知道吗
key=len
n + nlg(n)
这取决于您使用的数据结构:
O(log n)
O(n)
O(1)
Theta(1)
O(k)
这取决于您使用的数据结构:
O(log n)
使用对分O(n)
,因为您必须移动所有内容O(n)
)O(1)
。你知道吗O(n)
O(log n)
摊销O(log n)
或Theta(1)
,这取决于您使用的实现。^python中的{a6}就是一个实现。您可以在堆中简单地推送项,完成后,可以在O(n)
中获得排序结果。同时,您可以在O(1)
中访问树的根,在O(k)
中访问k最小的排序树。你知道吗相关问题 更多 >
编程相关推荐