【发布时间】:2015-02-21 05:00:11
【问题描述】:
我的问题不是问你是否可以对预先存在的哈希表进行排序,而是如果我可以的话,正确索引的键会保持排序吗?
例如,如果我需要一个人的哈希表,我在其中对他们的出生年份进行哈希处理,并且我希望最小的总是低于最大的。如果我进行二次探索以重新散列,它仍然会有最年轻的在最年长的之下。这听起来合乎逻辑,但在什么情况下会中断?
tl;dr 如果我有哈希表对订单索引的键进行哈希处理,即使在重新哈希处理期间它们也会保持排序状态吗?
【问题讨论】:
-
您的问题很难阅读......而且,您所问的似乎取决于具体的哈希表实现。你问的是一种特定的语言吗?如果有,请添加相关标签。
-
我用 C++ 编写,但这只是一个数据结构问题。我不是在问如何制作一个或任何关于哈希表的性质的东西。
-
基本上,如果我的哈希函数是按从老到老的,那么它基本上是排序的吗?它会保持按二次探测实现排序吗?
-
一般来说,哈希表只是将键映射到值,它存储键/值对的顺序是特定于实现的。例如,Java HashMap 说“这个类不保证映射的顺序;特别是,它不保证顺序会随着时间的推移保持不变。”
-
它们不会“保持”排序,因为它们从一开始就没有排序。
标签: data-structures hash hashtable