4
我有一個區分二次和線性探測算法的問題。當我在閱讀概念性解釋時,我看到我^ ^被重複添加到最後一個索引的嘗試。這裏的情況如何?線性探測會將此變爲什麼?從我正在閱讀的內容來看,下面的方法實現了二次探測。這個散列探測方法是如何二次的?
private int findPosQuadratic(AnyType x)
{
int offset = 1;
int currentPos = myhash(x);
while(array[ currentPos ] != null &&
!array[ currentPos ].element.equals(x))
{
currentPos += offset; // Compute ith probe
offset += 2;
if(currentPos >= array.length)
currentPos -= array.length;
}
return currentPos;
}
我會改變它以使它線性化嗎?刪除'offset + = 2'? – rcj 2013-05-03 19:24:56
是的,因爲它會變成H(n)= H + n – 2013-05-03 19:25:23