看板 EE_DSnP 關於我們 聯絡資訊
關於效能方面 個人有個問題...ˊˋ 首先是拿原來的 Makefile 和 Makefile.in 做測試 執行 do2 的時間是 dlist > bst > array 然而在依照 #1A2Qnj-T 教授的說明修改了 Makefile 和 Makefile.in 之後 就變成 dlist > array > bst 了... 由於現在正要著手寫 report 想請問一下究竟要以哪個為準會比較妥當? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.4.181
e124553423:三個都寫?重點放bst吧,另外兩個大家應該不會差太多 12/04 17:47
victoret:問題是長在...array 比 bst 快啊ˊˋ 12/04 17:56
djshen:我-O3 array也比較快 主要是慢在adtd -r 12/04 18:16
djshen:不知道為什麼= = 12/04 18:19
victoret:++ 的問題,個人 ++ 裡的判斷式換一下...就快了 30 % 12/04 19:06
victoret:還有 call 一些要跑個半天的 function 的時候,把回傳的 12/04 19:07
victoret:值存起來也可以省下不少時間(array 的部分) 12/04 19:07
victoret:array 是時間變成原來的 2 / 3...超誇張@@ 12/04 19:08
rf0914:還是資料不夠多的問題?? 我用adta -r 500000 高下立判XD 12/04 19:09
rf0914:不過等了一個多小時... 12/04 19:10
djshen:insert絕對是bst快 adta -r 1000000不用兩秒 array就... 12/04 19:14
victoret:現在是想要知道修改 makefile 到底影響到什麼??? 12/04 19:17
shryuhuai:是看各個指令需要花的時間吧,bst大部分都花在delete 12/04 19:21
djshen:adtd -r 在adtTest.h的getPos array是constant time 12/04 19:22
djshen:bst就麻煩了 看++寫得怎樣 12/04 19:22
shryuhuai:我的bst就是在最後一個指令被array逆轉的 12/04 19:23
victoret:很妙的,用了 O3 之後我跟同學的比較一下發現差不多 12/04 19:24
djshen:erase的話 array要往前移 bst就看哪個case 最多也logn吧? 12/04 19:24
victoret:但是 O3 之前...他的 2 秒...我的 6 秒...不解ˊˋ 12/04 19:24
shryuhuai:bst在其他指令應該都會大勝array吧? 12/04 19:24
alvin1019127:借標題問一下,老師的array是不是用binary search? 12/04 19:24
victoret:要到那個速度應該要用 binary search 吧... 12/04 19:25
shryuhuai:一定是吧,不然不會比dlist快那麼多 12/04 19:25
djshen:我insert跟erase(T)的某個地方有用 12/04 19:26
shryuhuai:dlist因為search太慢,連insert都會輸array = = 12/04 19:26
ric2k1:回 alvin1019127: 當然囉! 12/05 00:32
ric2k1:dlist 如同有些人的討論一樣,我改了一兩行判斷式之後 12/05 00:33
ric2k1:也快了一些,但我懶得再上傳 ref 了 12/05 00:33
ric2k1:推專業的五樓! 大家可以選擇 -g 或 -O3 其中一種來討論即可 12/06 14:13
ric2k1:但如果要去探討為什麼 -g 與 -O3 之間會什麼會有差別, 12/06 14:14
ric2k1:也是很歡迎啦! 12/06 14:14
AlexCYW:順便問一下 如果使用有parent的BST是不是memory會比ref多 12/06 22:19
AlexCYW:我使用adtr 100 adta -r 100000 ref是13.03M 我是13.8M 12/06 22:20
AlexCYW:雖然看起來好像每個NODE多8B 但是我電腦是32-bit的 12/06 22:21