Re: [問題] 有沒有辦法取代或改善List的效率?
※ 引述《H45 (!H45)》之銘言:
: ※ 引述《superlubu (勁過呂布)》之銘言:
: 經測試,你的 Code 運作速度比原程式碼還慢
: nodeNumber = 100,000
: CHANCE_MOVE = 0.05
: 原 PO 的版本: 217ms
: 你的版本: 3000ms
: 請問是不是哪裡有漏掉了呢?
: (文末附上我的測試碼)
Orz... 我忘了 ArrayList 頻繁的 remove 和 add 動作所需的時間要很多 Orz
該用 set(index, element) 才對,只要把 swapping 那幾句換成:
originalRandomArray.set(i, ranInt);
originalRandomArray.set(ranInt, curPos);
// swap two numbers in pos ranInt and i
就可以把時間縮短為 78ms (原 PO 版本 109ms)
題外話: 若換成用 int[] 來作同一個問題,時間只用 19ms 囧rz
謝謝 H45 板友的覆查 <(_ _)>
注: 這個 algorithm 若 CHANCE_MOVE >= 0.5 時就會比原 PO 的方法還要慢了
對不起 <(_ _)>
--
勁過呂布的勁過相薄...
http://www.wretch.cc/album/superlubu
亂七八糟的,不好意思 m(_ _)m
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 147.8.130.225
※ 編輯: superlubu 來自: 147.8.130.225 (05/23 12:55)
※ 編輯: superlubu 來自: 147.8.130.225 (05/23 13:05)
討論串 (同標題文章)