[理工] [DS] 98 交大資工

看板Grad-ProbAsk作者 (aska)時間14年前 (2012/02/11 18:56), 編輯推噓4(4021)
留言25則, 10人參與, 最新討論串1/1
第二大題 第一小題 答案看榜首哥寫的是 說這個code是做Heapify 答案是15 8 12 6 7 1 9 5 3 4 不過我實際用程式跑是 4 15 12 9 8 10 5 6 3 1 很奇怪 有哪位大大有手動把它output出來的嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.116.112.16

02/11 19:04, , 1F
因為他程式有瑕疵阿 heapfiy程式 他根本沒調到root
02/11 19:04, 1F

02/11 19:04, , 2F
這題不是code有錯 不然是做max-heap
02/11 19:04, 2F

02/11 19:04, , 3F
真的跑不是會runtime error嗎?
02/11 19:04, 3F

02/11 19:05, , 4F
heap 我覺得還是要以正常的調整為主 就是原本那個答案
02/11 19:05, 4F

02/11 19:05, , 5F
那程式可以跑 但他會沒調到root
02/11 19:05, 5F

02/11 19:06, , 6F
他也沒辦法調root index要從1開始
02/11 19:06, 6F

02/11 19:09, , 7F
皮卡大說的是~
02/11 19:09, 7F

02/11 19:37, , 8F
這題因為b[10]從0~9阿 本來heap就是0不用..當然有錯
02/11 19:37, 8F

02/11 19:39, , 9F
如果另類想法 也許題目是要我們把4留著 只調整b[1~9]
02/11 19:39, 9F

02/11 19:40, , 10F
那也許可能另外用一個heap(9個點的) 很快的用出來~
02/11 19:40, 10F

02/11 19:44, , 11F
還有你實際成是跑的 10 - > 7 才對
02/11 19:44, 11F

02/11 20:05, , 12F
我想問當我跑foo(b,3,10)時,會出現 j=12 的情況
02/11 20:05, 12F

02/11 20:06, , 13F
那 if(k>=a[j]) 要如何判斷?
02/11 20:06, 13F

02/11 21:40, , 14F
程式錯了我覺得
02/11 21:40, 14F

02/11 21:41, , 15F
我也TRACE過 丟第一次進去FOO就不對
02/11 21:41, 15F

02/11 21:52, , 16F
程式有錯,這題我看很久,index會超出範圍
02/11 21:52, 16F

02/11 23:35, , 17F
題目應該是想b[10] 從1~10 但是output那邊卻是0~9...
02/11 23:35, 17F

02/11 23:36, , 18F
我也照他的程式打到C裡面 如果array範圍是0~9這樣
02/11 23:36, 18F

02/11 23:37, , 19F
程式會出錯 結果會有亂碼
02/11 23:37, 19F

02/11 23:37, , 20F
當初我也是trace程式碼(沒反應過來是heapify)
02/11 23:37, 20F

02/11 23:38, , 21F
結果也是跟原po一樣 看到解答時久久不能諒解XDD
02/11 23:38, 21F

02/11 23:38, , 22F
只能說 這題是要考能不能想到heapify 直接寫出答案來吧
02/11 23:38, 22F

02/12 12:09, , 23F
這題有送分嗎 去trace如我 不就像個北七= =
02/12 12:09, 23F

02/12 12:48, , 24F
雖然是自嘲 但你罵到很多人xd
02/12 12:48, 24F

09/11 14:55, , 25F
程式會出錯 結果會有亂 https://daxiv.com
09/11 14:55, 25F
文章代碼(AID): #1FDab88_ (Grad-ProbAsk)