[理工] [DS] Heap

看板Grad-ProbAsk作者 (Jay)時間11年前 (2015/01/27 23:54), 11年前編輯推噓6(6013)
留言19則, 6人參與, 最新討論串1/1
想請問以下兩題heap相關的題目 1. http://i.imgur.com/jBYgIRv.png?1 出自MIT 線上課程(http://ppt.cc/mMg2) 答案:False ;solution:http://i.imgur.com/ySIzOmT.png?1 和朋友的結論是 他是問search不是extract-min or insert 所以與heapify無關 2. http://i.imgur.com/BeNYJnz.png?1 出自政大資科98年 答案:B ; 算是很平常的heap考法 ; 假設是min-heap ; extract-min一次後選root ; O(logn) 但是偏偏剛好聯想到第一題 題目問[worst case] [find second min] 且沒講max or min heap 就給他選了O(n) 不知道版上各位的看法如何 有時候覺得自己想太多 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.24.154.218 ※ 文章網址: https://www.ptt.cc/bbs/Grad-ProbAsk/M.1422374048.A.5D4.html ※ 編輯: k3331863 (114.24.154.218), 01/28/2015 00:01:29 ※ 編輯: k3331863 (114.24.154.218), 01/28/2015 00:03:08

01/28 00:06, , 1F
我覺得第一題不是問第二大的所以才是O(n)
01/28 00:06, 1F

01/28 00:06, , 2F
講錯 第二小
01/28 00:06, 2F

01/28 00:08, , 3F
第一題應該是說對任意元素x假設他是k-th大 那要找k+1-th
01/28 00:08, 3F

01/28 00:14, , 4F
感覺兩題要問的東西不一樣!? 第一題是找出某key值x
01/28 00:14, 4F

01/28 00:14, , 5F
以下最大的key值,這個用刪除最小點的方法應該沒辦
01/28 00:14, 5F

01/28 00:14, , 6F
法得到;第二題就純粹是問整棵heap第二小的點了
01/28 00:14, 6F

01/28 00:15, , 7F
同樓上看法,不過第二題沒講min-heap我看到會抖
01/28 00:15, 7F

01/28 00:55, , 8F
min-heap中找第k小的元素是可以在O(k lg k)時間內找到的..
01/28 00:55, 8F

01/28 08:28, , 9F
O(klgk)平均起來會比O(n)大吧@@
01/28 08:28, 9F

01/28 08:53, , 10F
第k小跟第二小不一樣吧?
01/28 08:53, 10F

01/28 12:35, , 11F
第二大 = 第n-1小 要找O(nlogn) 還不如用循序O(n)
01/28 12:35, 11F

01/28 13:06, , 12F
只能說第二題出得太爛了 比較令人在意的點是 遇到題目
01/28 13:06, 12F

01/28 13:06, , 13F
問heap的search or find 和 extract-min or max 的worst
01/28 13:06, 13F

01/28 13:06, , 14F
case 還有第一題的any 和第二題的second
01/28 13:06, 14F

01/28 13:12, , 15F
之前寫完第一題後的認知是 在heap內search是需要O(n)的
01/28 13:12, 15F

01/28 13:12, , 16F
相較之下 第二題 要extract-min. second 和 first 不
01/28 13:12, 16F

01/28 13:12, , 17F
都是O(log) 想考heapify又講得這麼不明不白
01/28 13:12, 17F

01/28 13:16, , 18F
更正O(logn)
01/28 13:16, 18F
※ 編輯: k3331863 (114.24.180.185), 01/28/2015 13:21:15

01/28 23:18, , 19F
第二題 min-heap裡面找第二小是O(1).. 如果不extract.
01/28 23:18, 19F
文章代碼(AID): #1KnxIWNK (Grad-ProbAsk)