【问题标题】:TreeSet vs Collections.sort() java [duplicate]TreeSet vs Collections.sort() java [重复]
【发布时间】:2018-11-18 18:21:22
【问题描述】:

假设我有两个选项可以在集合中添加项目并对其进行排序

选项 1:遍历所有项并在迭代时将项添加到 TreeSet

选项 2:遍历所有项目并将项目添加到列表中,并在添加所有项目后使用 Collections.sort() 方法。

这两个选项中哪个选项的运行时间更快?

【问题讨论】:

    标签: java collections


    【解决方案1】:

    我会选择选项 2。

    Collections.sort() 的时间复杂度是 O(nlog(n)) (添加元素是 O(n) 但最终 O(n)+O(nlog(n))=O( nlog(n))),而 TreeSet.Add 的复杂度为 O(log n),导致添加所有项目时的复杂度为 O(nlog n)。所以复杂度看起来是一样的。最好的方法是分析您的实际代码,两种解决方案的不同之处在于 Big O 中未显示的常数因子,我敢肯定,在 TreeSet 的情况下它相当高。

    【讨论】:

      猜你喜欢
      • 2020-03-19
      • 1970-01-01
      • 2013-12-05
      • 2014-11-30
      • 1970-01-01
      • 1970-01-01
      • 2015-12-29
      • 2019-08-05
      • 2012-04-08
      相关资源
      最近更新 更多