免費開始練習
高考申論題 106年 [資訊處理] 資料結構

第 一 題

📖 題組:
請依序將 17, 23, 36, 13, 38, 11, 52, 44, 25, 35, 2, 18, 21 儲存至下列 13 桶(buckets)× 1 槽(slots)的雜湊表(hashing table)。請以各小題所設定的雜湊函式(hashing function)將資料依序存入並顯示最後的雜湊表。 (一)雜湊函式 F(x) = x mod 13,碰撞時,採取「線性探測法」(open addressing with linear probing)來放入資料。請顯示最後的雜湊表。(5 分) (二)雜湊函式 F(x) = x mod 13,碰撞時,採取「二次方探測法」(open addressing with quadratic probing)來放入資料。請顯示最後的雜湊表。(5 分) (三)雜湊函式 F1(x) = x mod 13,碰撞時,採取「雙探測法」(open addressing with double hashing)來放入資料,第二雜湊函式為 F2(x) = 7-(x mod 7)。請顯示最後的雜湊表。(5 分) (四)若雜湊表夠大(例如 slots = 2 或更大)但資料量多時,針對三種碰撞時所採取的處理方式,請說明那一種方式較能有效率的儲存或搜尋資料?請說明那一種處理方式效率最差?(5 分)
題組圖片
📝 此題為申論題,共 4 小題

小題 (一)

雜湊函式 F(x) = x mod 13,碰撞時,採取「線性探測法」(open addressing with linear probing)來放入資料。請顯示最後的雜湊表。(5 分)

思路引導 VIP

本題重點在於運用模除求出雜湊位址,並在使用「線性探測法」時,遇到碰撞即往後尋找下一個空位。若超過雜湊表最大索引,則從頭(Index 0)繼續尋找,需仔細追蹤每一個資料放入時的索引狀態。

🤖
AI 詳解
AI 專屬家教

【解題關鍵】運用雜湊函式 $F(x) = x \pmod{13}$ 計算初始位置,若發生碰撞,則以線性探測法 $F'(x) = (F(x) + i) \pmod{13}$ 尋找下一個空槽($i=1, 2, 3...$)。 【解答】 依序將資料放入雜湊表的詳細步驟如下:

小題 (二)

雜湊函式 F(x) = x mod 13,碰撞時,採取「二次方探測法」(open addressing with quadratic probing)來放入資料。請顯示最後的雜湊表。(5 分)

思路引導 VIP

本題測試雜湊表的碰撞處理機制。看到「二次方探測法」,應立即聯想到碰撞時的探測公式:H_i = (F(x) + i^2) mod 13,亦即當發生碰撞時,依序往後加上 1^2, 2^2, 3^2... 的位移量,直到找到空槽位為止。計算時需謹慎逐步推導,避免因為一個槽位填錯導致後續連鎖錯誤。

🤖
AI 詳解
AI 專屬家教

【解題關鍵】二次方探測法之碰撞處理公式為 H_i = (F(x) + i^2) mod 13,其中 i = 1, 2, 3... 直到找到空位。 【解答】 計算:逐步推導各資料的儲存位置

小題 (三)

雜湊函式 F1(x) = x mod 13,碰撞時,採取「雙探測法」(open addressing with double hashing)來放入資料,第二雜湊函式為 F2(x) = 7-(x mod 7)。請顯示最後的雜湊表。(5 分)

思路引導 VIP

雙重探測法的核心在於當第一個雜湊位置 F1(x) 發生碰撞時,使用第二個雜湊函數 F2(x) 作為探測的步長。公式為:H(x, i) = (F1(x) + i * F2(x)) mod 13,其中 i 遞增直到找到空位,依序代入數字並仔細記錄佔用的桶位即可得出正解。

🤖
AI 詳解
AI 專屬家教

【解題關鍵】雙探測法(Double Hashing)的探測公式為 H(x, i) = (F1(x) + i * F2(x)) mod 13,發生碰撞時,以 $F_2(x)$ 為步長遞增 $i$($i=1, 2, 3...$),直到找到空槽位。 【解答】 依序將資料代入計算:

小題 (四)

若雜湊表夠大(例如 slots = 2 或更大)但資料量多時,針對三種碰撞時所採取的處理方式,請說明那一種方式較能有效率的儲存或搜尋資料?請說明那一種處理方式效率最差?(5 分)

思路引導 VIP

評估雜湊表碰撞處理機制的效率,核心在於「聚集(Clustering)」現象的嚴重程度。考生應直指線性探測法易產生「主聚集」導致效率最差,而雙探測法能同時解決主、次聚集,使資料分佈最均勻、效率最佳。

🤖
AI 詳解
AI 專屬家教

【破題】 評估開放定址法(Open Addressing)碰撞處理的效率,主要取決於該方法是否容易產生「聚集(Clustering)」現象。聚集會導致探測次數增加,進而降低儲存與搜尋的效能。 【論述】

📝 同份考卷的其他題目

查看 106年[資訊處理] 資料結構 全題

升級 VIP 解鎖