1 雜湊表(雜湊表)的定義

2021-06-17 18:00:08 字數 890 閱讀 8394

一般的查詢

給你乙個順序表,你會如何查詢某個給定的元素?

到了有序表(已排序的表)查詢時,我們可以利用a[i]與key的「<」 或 「>」,來折半查詢,直到相等時查詢成功返回i。

反正我們的目標就是要找到那個 i 值,是不是還有其它好點的方法呢?

乙個小故事

試想這樣的場景,你很想學太極拳,聽說學校有個叫張三丰的人打得特別好,於是你到學校學生處找人。學生處的工作人員可能會拿出學生名單,乙個乙個的查詢, 最終告訴你,學校沒這個人,並說張三丰幾百年前就已經在武當山作古了。可如果你找對了人,比如在操場上找那些愛運動的同學,人家會告訴你,「哦,你找張三丰呀, 有有有,我帶你去。」於是他把你帶到了體育館內,並告訴你,那個教大家打太極的小夥子就是「張三丰」,原來「張三丰」 是因為他太極拳打得好而得到的外號。

也就是說,我們只需要通過某個函式f,使得

儲存位置 = f(關鍵字)

那樣我們可以通過查詢關鍵字不需要比較就可獲得需要的記錄的儲存位置。

這就是一種新的儲存技術——雜湊技術。

雜湊技術與雜湊表

雜湊技術是在記錄的儲存位置和它的關鍵字之間建立乙個確定的對應關係f,使得每個關鍵字key對應乙個儲存位置f(key)。

查詢時,根據這個確定的對應關係找到給定值key的對映f(key),若查詢集合中存在這個記錄,則必定在f(key)的位置上。

這裡我們把這種對應關係f稱為雜湊函式,又稱為雜湊(hash)函式。按這個思想,採用雜湊技術將記錄儲存在一塊連續的儲存空間中,這塊連續儲存空間稱為雜湊表或雜湊表(hashtable)。那麼關鍵字對應的記錄儲存位置我們稱為雜湊位址。

明白了!經常聽說的雜湊表,原來是這麼回事。看來裡面還有很多學問,興趣滿滿呢。讓我們後面繼續深入地去了解雜湊技術~

雜湊表(雜湊表)的定義

chapter 雜湊表 雜湊表 1.雜湊表 雜湊表 的定義 2.雜湊表是怎麼進行查詢的?3.雜湊函式設計 直接定址法 4.雜湊函式設計 除留餘數法 5.雜湊衝突處理 開放定址法 6.雜湊衝突處理 鏈位址法 7.雜湊表的鏈位址法實現 8.linux核心中的hash與bucket 9.引入雜湊桶的概念來...

雜湊表(雜湊表)的定義

到了有序表 已排序的表 查詢時,我們可以利用a i 與key的 或 來折半查詢,直到相等時查詢成功返回i。反正我們的目標就是要找到那個 i 值,是不是還有其它好點的方法呢?乙個小故事 試想這樣的場景,你很想學太極拳,聽說學校有個叫張三丰的人打得特別好,於是你到學校學生處找人。學生處的工作人員可能會拿...

雜湊表 雜湊表

一 定義 雜湊表 hash table,也叫雜湊表 是根據關鍵碼值 key value 而直接進行訪問的資料結構。也就是說,它通過把關鍵碼值對映到表中乙個位置來訪問記錄,以加快查詢的速度。這個對映函式叫做雜湊函式,存放記錄的陣列叫做雜湊表。雜湊表的做法其實很簡單,就是把key通過乙個固定的演算法函式...