1. 程式人生 > >圖解算法(五)

圖解算法(五)

這樣的 () 數組 app 內存 價格 將不 輸入a mil

散列表

1.散列函數

散列函數是這樣的函數,即無論你給它什麽數據,他都還給你一個數字。散列函數必須滿足一些要求:

  • 它必須是一致的。例如,輸入apple得到的是4,那麽每次輸入apple,得到的都必須是4
  • 它應將不同的輸入映射到不同的數字上。

為此,首先創建一個空數組。我們將在這個數組中存儲商品的價格。下面來將蘋果的價格加入到這個數組中。將apple作為輸入交給散列函數,散列函數輸出為3,因此我們將蘋果的價格存儲在數組的索引3處。以此類推,填滿整個數組。

假設現在我們需要知道apple的價格,我們無需再數組中查找,只需將apple交給散列函數,輸出3,我們直接在數組索引3處就能找到apple的價格。

我們結合散列函數和數組創建了一種被稱為散列表的數據結構。數組和鏈表都被直接映射到內存,但是散列表更復雜,它使用散列函數來確定元素的存儲位置。

Python提供了散列表的實現,使用函數dict來創建散列表。

book = dict()
book["apple"] = 0.88
print book
print book["apple"]

2.應用案例

2.1 將散列表用於查找

2.2 防止重復

2.3 將散列表用作緩存

圖解算法(五)