我是CS的学生,了解Java Collections。 在我的学校,我们收到了一张图表,其中包含数据结构不同操作的时间复杂性。图表中有些东西对我没有意义。
关联列表 它说,最后插入和查找元素数量的时间复杂性取决于实现。这是为什么?为什么不是O(n)?
HashMap中 对于HashMap,它表示用于查找元素数量或确定hashMap是否为空的tc也依赖于tc实现。
TreeMap 与TreeMap相同。根据该图表,确定元素数量的操作的tc是依赖于实现的。它们的含义是什么?
答案 0 :(得分:1)
LinkedList
的某些实现可以保持列表中元素数量的计数以及指向快速尾部插入的最后一个元素的指针。这意味着它们是O(1),因为它是一种快速数据访问。
HashMap
和TreeSet
的实现可以遵循类似的推理,如果它们保留了具有数据结构的元素数量的计数,那么isEmpty()
和{{1}等函数也可以做O(1)。