1.何謂哈希
哈希,也程散列。哈希表是一種與數組,連結清單等不同的資料結構,與他們需要不斷的
周遊比較查找的辦法,哈希表設計了一個映射關系發f(key)=adress,根據key來計算adress,
這樣可以一次查找。f既是存儲過程中用來指引資料存儲到什麼位置的函數,也是将來查找這個位置
的算法,叫做雜湊演算法。
2.雜湊演算法
雜湊演算法可以随意設計,比如:直接定址法,平方取中法,除數取餘法。雜湊演算法的本質是
計算一個數字。
3.哈希沖突
算法如果不夠嚴謹,會造成哈希沖突,就是查找出來的重複了,即多條記錄都
映射在一個位置上。哈希沖突跟哈希函數的設計正相關的,随機性越大,那麼産生哈希沖突的可能性越小,
在小機率情況如果還有沖突怎麼辦,這時需要做一些有損的設計,比如哈希再哈希。
4.哈希用途
某些資料會被高頻率查詢,資料量大,資料類型不唯一。
Hash表,他是一種資料結構,一種效率極高的查找方式。哈希表的核心在于哈希函數的設計,哈希沖突了不要緊,
我們要增加随機性以及對沖突進行适當的有損化處理。
5.字典和哈希表差別?
哈希表和字典在内容實作上比較相似,不同的是字典不需要裝箱和拆箱操作,是以在添加資料時
效率上高一點,但是在頻繁調用資料時字典更快一些。
哈希表:
①存入資料不限制類型和數量。
②存值時,哈希表以鍵值對的形式存入資料,且值不允許重複。
③取值時,取值時找key,key找value。
字典:
①鍵和值得類型取決于定義字典時的設定類型。
②鍵必須唯一,值不需要唯一。