1樓:愛可生雲資料庫
雜湊表是一種資料結構,通過雜湊函式(也就是 hash 函式)將輸入對映到乙個數字,一般用對映出的數字作為儲存位置的索引。陣列在查詢時效率很高,但是插入和刪除卻很低。而連結串列剛汪掘好反過來。
設計合理的雜湊函式可以整合連結串列和陣列的優點,在查詢、插入、刪除時實現 o(1) 的效率。雜湊表的儲存結構使用的也是陣列加連結串列。執行效率對比可以看下圖 :
<>雜湊表的主要特點:
1.將輸入對映到數字。
2. 不同的輸入產生不同的輸出。
3. 相同的輸入產生相同的輸出。
4. 當填裝因子超過閾值時,能自動擴充套件。填裝掘陵鬥因子 = 雜湊表包含的元素數 / 位置總數,當填裝因子 =1,即雜湊表滿的時候,就需要調整雜湊表的長度,自動擴充套件的方式是:
申請一塊舊儲存容量 x 擴容係數的新記憶體位址,然後把原記憶體位址的值通過其中的 key 再次使用 hash 函式計算儲存位置,拷貝到新申請的位址。
5. 值呈均勻分佈。這裡的均勻指水平方向的,即陣列維度判磨的。
如果多個值被對映到同乙個位置,就產生了衝突,需要用連結串列來儲存多個衝突的鍵值。極端情況是極限衝突,這與一開始就將所有元素儲存到乙個連結串列中一樣。這時候查詢效能將變為最差的 o(n),如果水平方向填充因子很小,但某些節點下的連結串列又很長,那值的均勻性就比較差。
2樓:網友
廣度優先 需要用到的是 佇列,深度優先 需要 的是 棧。。資料結構很基礎的東東。
資料結構之雜湊表
3樓:戶如樂
1.雜湊函式計算得到的雜湊值是乙個非負整數。
2.若key1=key2,則hash(key1)=hash(key2)
3.若key≠key2,則hash(key1)≠hash(key2)1.要儘可能讓雜湊後的值隨機且均勻分佈,這樣會儘可能減少衡轎雜湊衝突,即便衝突之後,分配到每個槽內的資料也比較均勻。
2.除此之外,雜湊函式的設計也不能太複雜,太復咐銀肆雜就會太耗時間,也會影響到雜湊表的效能。
直接定址法除留取餘法平方取中法摺疊法
隨機資料法數搏高學分析法線性探測二次探測偽隨機探測裝載因子時間複雜度:攤還分析法如何避免低效擴容
資料結構中雜湊表
4樓:匿名使用者
38 mod 7=3 放在第4個位置(位置從0開始編哪巨集物號) [x x x 38 x x x]
25 mod 7=4 放在第5個位置: [x x x 38 25 x x]
74 mod 7=4 本來該放在第5個位置,結果衝突了,就往後找第乙個空位。
往後面的第乙個空位就在第6個位置 [x x x 38 25 74 x]
63 mod 7=0 放在第1個位置 [63 x x 38 25 74 x]
52 mod 7=3 放在第4個位置,衝突,往後找 [63 x x 38 25 74 52]
48 mod 7=6 放在第7個位置,衝突,往後找 [63 48 x 38 25 74 52]
等概率下,找38,就在38 mod 7=3,也就是第4個位置去找,結果一下就找到了。
找25也是一下就找到了。
找74,在74 mod 7=4,然後在第5個位置找,結果沒找到,往後方繼續找,在第絕裂6個位置找到了,於是這個數字花了2次。
找63直接就找到了,找52,從第4個位置找,依次和第5,6,7個位置對比,這樣對比了4次,就找到了。
找48要李液第3次才能找到。
於是,平均找的次數就是 (1 + 1 + 2 + 1 +4 +3)/7=12/7=次。
資料結構求答案資料結構求答案
cccadcad 考察的每個知識點我都看書確認過!嚴蔚敏教材直接可找出答案 第18題 2 分 對線性表進行二分查詢時,要求線性表必須 c 順序儲存,且結點按關鍵字有序排序 第19題 2 分 下面關於b樹和b 樹的敘述中,不正確的是 c 都能有效地支援順序檢索 第20題 2 分 設輸入序列為a,b,c...
資料結構的問題,資料結構的定義問題
就是幾個小錯誤 對照著看下就行,關於頭指標,如果不採用返回值的方法建立,就得使用指標的指標或者對指標的引用了。指標本身也是一個變數,它有自己的地址同時它的值也是地址,所以不採用引用或者指標的指標這樣傳遞,在函式作為實參傳遞後,函式內的指標就是另一個臨時的指標了,雖然它們儲存的值是一樣的,但是在進行分...
資料結構的基礎知識,資料結構必須掌握的知識點有哪些
第一章 什麼是資料結構。基本概念和術語。資料的邏輯結構和物理結構。基本概念和術語。.資料 data 是對客觀事物的符號的表示,是所有能輸入到計算機中並被電腦程式處理的符號的總稱。.資料元素 data element 是資料的基本單位,在電腦程式中通常作為乙個整體來處理。乙個資料元素由多個 資料項...