Big o 树集的removeAll()的性能(大O)是多少?

Big o 树集的removeAll()的性能(大O)是多少?,big-o,treeset,removeall,Big O,Treeset,Removeall,我正在上Java数据结构课程。我的一项作业要求我选择自己选择的数据结构,并编写拼写检查程序。我正在检查不同数据结构的性能 我去了treeset的api,它是这么说的。。。 此实现为基本操作(添加、删除和包含)提供有保证的日志(n)时间开销 包括removeAll()吗 要不然我怎么才能弄明白呢 提前谢谢你不。对于大小为k的参数集合,removeAll()的最坏情况上限当然是O(k*logn)-因为参数集合中包含的每个元素都必须从树集中删除(这至少需要搜索它们),每次搜索都会产生logn的代价。它

我正在上Java数据结构课程。我的一项作业要求我选择自己选择的数据结构,并编写拼写检查程序。我正在检查不同数据结构的性能

我去了treeset的api,它是这么说的。。。 此实现为基本操作(添加、删除和包含)提供有保证的日志(n)时间开销

包括removeAll()吗

要不然我怎么才能弄明白呢


提前谢谢你

不。对于大小为k的参数集合,removeAll()的最坏情况上限当然是O(k*logn)-因为参数集合中包含的每个元素都必须从树集中删除(这至少需要搜索它们),每次搜索都会产生logn的代价。

它不包括removeAll(),但我不同意波尔卡盖斯特的回答。removeAll()可能会在固定时间内执行,具体取决于实现,尽管执行似乎最有可能在线性时间内执行


我认为,如果NlogN是以最糟糕的方式实现的,那么NlogN将是最糟糕的。如果要删除每个元素,则无需搜索元素。您拥有的任何元素都需要删除,因此无需搜索。

如果我正在编写拼写检查程序,我会使用哈希集来存储字典。这样您就可以固定时间访问每个元素。