【问题标题】:Add to hashmap in sorted fashion (Java)以排序方式添加到 hashmap (Java)
【发布时间】:2018-05-11 04:08:00
【问题描述】:

哈希图需要 O(1) 来获取或删除内容。如果我想对它进行排序,Collections.sort() 将花费 nlogn 时间。如果我改用树形图,它会在添加它们时对它们进行排序,这样我就不必花费 nlogn 排序,但它需要 nlogn 查找内容。因此问题是我是否可以手动控制 hashmap put 方法,使其不使用 hashcode 方式,而是对它们进行可比较的排序?我正在为一个使用 hashmap 进行许多插入和删除以及许多排序的程序寻求 O(1)。

【问题讨论】:

  • TreeMap 是 O(log n) 检索,而不是 O(n log n)。
  • 但要回答你的问题:你不能。您不可能对所有事情都拥有(预期的)O(1),并且有一个排序的数据集。
  • TreeMap 有什么问题?

标签: java sorting optimization hashmap treemap


【解决方案1】:

排序n 项目将(几乎在所有情况下)花费O(n log n) 时间。这是一个可以证明的事实。有关排序算法界限的大量信息,请参阅Wikipedia on Sorting

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-27
    • 2011-03-02
    • 2011-12-24
    • 2017-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多