完成藍墨雲班課上的三種查找算法練習任務;並截圖(類代碼,測試代碼,運行結果代碼)發送至藍墨雲算法
返回目錄數組
順序查找 、折半查找 及ASL 此前在第五週學習總結及第6周課堂實踐中闡述過,這裏再也不作多餘的敘述。數據結構
索引 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
元素 | 25 | 38 | 17 | 41 | 21 |
p:通常爲素數,設散列表空間大小爲n,則1.1n<p<1.7n爲宜,這樣能夠儘量避免發生衝突。函數
索引 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|---|---|
元素 | 60 | 17 | 29 |
dⅰ 決定了不一樣的解決衝突方案:學習
索引 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|---|---|
元素 | 60 | 17 | 29 | 38 |
索引 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|---|---|
元素 | 38 | 60 | 17 | 29 |
索引 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|---|---|
元素 | 38 | 60 | 17 | 29 |
原理:遇到衝突時,會在原地址新建一個空間,而後以鏈表節點的形式插入到該空間裏。測試
索引 | 元素 | ||
---|---|---|---|
0 | |||
1 | |||
2 | |||
3 | |||
4 | |||
5 | 60 | → | 38 |
6 | 17 | ||
7 | 29 | ||
8 | |||
9 | |||
10 |
返回目錄設計
散列函數: H(k) = k%11。htm
索引 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
---|---|---|---|---|---|---|---|---|
元素 | 11 | 78 | 10 | 1 | 3 | 2 | 4 | 21 |
查找次數 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
ASL = (1 +2 +3 +4 +5 +6 +7 +8)/ 8 = 4.5
索引 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
---|---|---|---|---|---|---|---|---|
元素 | 11 | 78 | 10 | 1 | 3 | 2 | 4 | 21 |
索引 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
---|---|---|---|---|---|---|---|---|
元素 | 1 | 2 | 3 | 4 | 10 | 11 | 21 | 78 |
查找次數 | 3 | 2 | 3 | 1 | 3 | 2 | 3 | 4 |
ASL = (1x1 + 2x2 + 4x3 + 1x4) / 8 = 2.625
索引 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|---|---|
元素 | 11 | 78 | 1 | 3 | 2 | 4 | 21 | 10 | |||
查找次數 | 1 | 1 | 2 | 1 | 3 | 2 | 8 | 1 |
ASL = (1 + 1 + 2 + 1 + 3 + 2 + 8 + 1 ) / 8 = 2.375
鏈地址法:
查找次數(頭) | 查找次數(節點) | 索引 | 元素 | ||
---|---|---|---|---|---|
1 | 0 | 11 | |||
1 | 2 | 1 | 78 | → | 1 |
1 | 2 | 2 | |||
1 | 3 | 3 | |||
1 | 4 | 4 | |||
5 | |||||
6 | |||||
7 | |||||
8 | |||||
9 | |||||
1 | 2 | 10 | 10 | → | 21 |
ASL = (6x1 + 2x2)/8 = 1.25