[理工] 101 交大 DS

看板Grad-ProbAsk作者 (Veck)時間11年前 (2013/01/17 20:06), 編輯推噓2(205)
留言7則, 4人參與, 最新討論串1/1
想請問 8 hash table 這一大題的 identifier comparisons 是指 對每一個index的 key 做比較 嗎? 依據(22)題目我建出來的 Table 是 0 1 2 3 4 5 6 7 8 9 10 --------------------------------------------------- | 11 | | 13 | 14 | 2 | 3 | 36 | 18 | 28 | | 21 | --------------------------------------------------- ↑ ↑ ↑ collision h(2) h(3) h(28) h(36) (22)題我想說應該是指每一個key都搜尋一次的情況 所以: 11 13 14 18 21 => 因為沒碰撞,用h(x) 可以馬上找到,各比1次,共5次 2 3 28 => 因為有碰撞,線性向後找兩個可以找到,各比3次,共9次 36 => 因為有碰撞,線性向後找三個可以找到,共比4次 Total in 5 + 9 + 4 = 18 但是這樣一來第(23)題我就不知道怎麼辦了? 我想說 25 and 24 are searched,又是 as the Hash Table in Step (22) 是不是說(22)完成以後還可以再找的到 25 和 24 ? 但是 Hash Table 中沒有這兩個數 因此要再加入這兩個數的意思嗎??? if so, 先加入25,會碰撞,所以找到 bucket No. 9 接著加入 24,也會碰撞,所以在線性往後找,到了 No. 10 都沒空位所以從頭找起 最後放在 No. 1 這樣子的話,當我要找 25,就會比較 7 次 (h(25) = 3,3~9共7次) 要找 24,就會比較 11次 (h(24) = 2,2~10 + 0~1共11次) 就變成 7 + 11 = 18 次了!? 但是答案給 C 15 次,是為什麼呢??? ============================================================================== 剩下兩周,大家加油!!!!!!!!!!!!!!!!! ------------------------------------------------------------------------------ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.46.83.156

01/17 20:11, , 1F
就只是叫你找看看 不用插入
01/17 20:11, 1F

01/17 20:13, , 2F
是要搜尋24和25但是找不到的搜尋次數,不是把他們加進去
01/17 20:13, 2F

01/17 20:17, , 3F
但這樣不就要把hash table整個都找一遍嗎?
01/17 20:17, 3F

01/17 20:18, , 4F
因為根本不在表中,所以算出位置後會一直往後找吧?
01/17 20:18, 4F

01/17 20:21, , 5F
如果找到一格空的 就不用往下找了
01/17 20:21, 5F

01/17 20:23, , 6F
對吼!!!! 謝謝兩位大大!!!!
01/17 20:23, 6F

01/17 23:43, , 7F
找24是8次喔!
01/17 23:43, 7F
文章代碼(AID): #1Gz-awCz (Grad-ProbAsk)