C# 通俗說 哈希表

1.何謂哈希

   哈希,也程散列。哈希表是一種與數組,鏈表等不一樣的數據結構,與他們須要不斷的算法

遍歷比較查找的辦法,哈希表設計了一個映射關係發f(key)=adress,根據key來計算adress,數組

這樣能夠一次查找。f既是存儲過程當中用來指引數據存儲到什麼位置的函數,也是未來查找這個位置數據結構

的算法,叫作哈希算法。函數

2.哈希算法

  哈希算法能夠隨意設計,好比:直接定址法,平方取中法,除數取餘法。哈希算法的本質是設計

計算一個數字。效率

3.哈希衝突

  算法若是不夠嚴謹,會形成哈希衝突,就是查找出來的重複了,即多條記錄都遍歷

映射在一個位置上。哈希衝突跟哈希函數的設計正相關的,隨機性越大,那麼產生哈希衝突的可能性越小,數據類型

在小几率狀況若是還有衝突怎麼辦,這時須要作一些有損的設計,好比哈希再哈希。鏈表

4.哈希用途

  某些數據會被高頻率查詢,數據量大,數據類型不惟一。數據

  Hash表,他是一種數據結構,一種效率極高的查找方式。哈希表的核心在於哈希函數的設計,哈希衝突了沒關係,

咱們要增長隨機性以及對衝突進行適當的有損化處理。

 5.字典和哈希表區別?

    哈希表和字典在內容實現上比較類似,不一樣的是字典不須要裝箱和拆箱操做,因此在添加數據時

效率上高一點,可是在頻繁調用數據時字典更快一些。

    哈希表:

        ①存入數據不限制類型和數量。

        ②存值時,哈希表以鍵值對的形式存入數據,且值不容許重複

        ③取值時,取值時找key,key找value。

    字典:

        ①鍵和值得類型取決於定義字典時的設置類型。

        ②鍵必須惟一,值不須要惟一。

相關文章
相關標籤/搜索