【发布时间】:2013-03-07 07:26:17
【问题描述】:
假设我想要存储一组数据(未排序)以便快速查找。在加载数据之前我不知道大小是多少,我应该一次加载所有数据,以便立即开始执行查找。
此外,在程序执行期间的任何时候,更多数据可能会呈现给我以存储在我选择的数据结构中。
我应该使用哈希表还是排序数组来存储这些数据?显然,静态哈希表需要在运行时根据所提供的数据大小制作 - 这是否足以成为一个缺点,我应该简单地对给我的数据进行排序,即使它是 O(NlogN) 而不是 O(否)?还是我应该考虑一些动态散列的方法?
澄清:我需要加载任意大小的数据,然后对数据执行搜索和插入,但没有明确的顺序或我必须执行的搜索/插入量的想法。
我知道这很笼统……但是如果在加载数据后我必须进行比搜索更多的插入操作怎么办?搜索量多于插入量呢?
【问题讨论】:
-
这个问题没有明确的答案 - 这完全取决于您的用例。您能否详细说明您需要支持哪些操作?
-
我添加了一个说明 - 希望对您有所帮助
标签: arrays performance data-structures hash complexity-theory