圖解算法(五)
阿新 • • 發佈:2019-05-05
這樣的 () 數組 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 將散列表用作緩存
圖解算法(五)