【发布时间】:2020-07-01 00:26:50
【问题描述】:
我有一个数组说[1, 2, 3, 4, 5, 10, 12, 6, 200, 300, 500]。我正在尝试开发一个散列函数,以便以相同距离k 分隔的所有元素应该在输出数组中的相同位置碰撞,在该位置形成一个链表,在该位置链表的标题。这将有助于使用散列函数根据距离找到最近的元素。我尝试了非常简单的哈希函数h(j)=int(j/k),其中k 是距离,例如如果k=5,那么碰撞点将是这样的[1, 2, 3, 4, 5] [6, 10] [12] [200] [300] [500]。
我的目标是给散列函数提供两个数字,例如1 和 2 他们应该在数组中返回相同的位置 0 告诉我他们是最近的邻居。
这应该以预期的 theta n 空间和时间复杂度运行。
【问题讨论】:
-
我还需要等效的散列函数,以便附近的数字应该映射到输出数组中的相同位置。例如[1,2,3,4,,100,200,150] ==> [[1,2,3,4],[100,200,150]]。你有什么发现吗?如果有人为此提供最佳资源,那将是非常有用的。
标签: java python algorithm hashmap hashtable