雜湊表平方探測法

2021-08-15 23:32:07 字數 1122 閱讀 1917

/*

* 平方探測採用原雜湊值加整數平方作為備選位置避免了一次聚集

* 會產生二次聚集,在備選位置上聚集

* 裝填因子不能大於0.5,即至少有一半為空且表大小為素數才能保證插入元素總能成功

*/public class quadraticprobinghashtable()

public quadraticprobinghashtable(int size)

private static class hashentry

public hashentry(anytype x,boolean i)

}private static final int default_table_size=11;

private hashentry array;

public void makeempty()

/**刪除只是將元素標記為刪除

*/ public void remove(anytype x)

private allocatearray(int arraysize)

/** hashentry引用陣列有三種情況

* 1null

* 2非null,該項是活動的(isactive=true)

* 3非null,該項標記w為刪除(isactive=false)

*/ private boolean isactive(int currentsize)

private int findpos(anytype x)

return currentpos;

}private int myhash(anytype x)

return hashval;}/*

*平方探測再雜湊

*/ private void rehash()}}

/**@return 包括n在內的之後的第乙個素數

*/ private static int nextprime(int n)

return n;

} /*

*素數判斷

*/ private static boolean isprime(int n)

}return true;

}}

平方探測法處理雜湊函式衝突

平方探測法是一種較好的處理衝突的方法,可以避免出現 堆積 問題,它的缺點是不能探測到雜湊表上的所有單元,但至少能探測到一半單元。下面通過乙個例子來理解 設hash函式為 h key key mod 7,雜湊表的位址空間為0,1,10,開始時雜湊表為空,用平方探測法解決衝突,畫出依次插入鍵值9,14,...

雜湊查詢(雜湊表建立及平方探測)

編譯處理時,涉及變數及屬性的管理 插入 新變數的定義 查詢 變數的引用 順序查詢 o n 二分查詢 o logn 二叉樹查詢o h 平衡二叉樹 o logn 如何快速查詢?查詢的本質 已知物件找位置 有序的安排物件 全序 順序查詢 半序 二叉樹 直接算出位置 雜湊查詢 雜湊查詢 1.計算位置。2.解...

平方探測法hash

time limit 400ms memory limit 65536kb problem description 給定的一組無重複資料的正整數,根據給定的雜湊函式建立其對應hash表,雜湊函式是h key key p,p是雜湊表表長,p是素數,處理衝突的方法採用平方探測方法,增量di i 2,i ...