我为我的Linear Hashtable实现了一个min()和max()函数,但我没有什么性能问题,因为我直接实现了它。 我只是假设找到的第一个元素是min / mix然后我将其余的元素与它进行比较。有更快的方法吗? 在哈希表中找到最小值/最大值?我在书中找不到任何东西。 我的第二种方法是在数组中编写每个值,然后仔细研究,但我不认为这更快。
答案 0 :(得分:1)
通用哈希表不是元素的排序列表。因此,查找给定表格的O(n)
和min()
将成为max()
操作。
答案 1 :(得分:0)
与Bill Lynch达成协议,我们必须花费O(n)
时间至少一次,但我们可能会尽可能地懒惰:
min
和max
min
和max
min
还是max
,如果是,请将标记设置为true
,表示最小值或最大值已更改。如果已设置标志,则无需检查当前的最小/最大值O(n)
时间再次设置它们。现在我们只需要花费O(n)
时间,而不是每次有人请求最小或最大时间O(n)
时间。如果插入次数多于删除次数,您通常会看到O(1)
查找时间。