作者superlubu (劲过吕布)
看板java
标题Re: [问题] 有没有办法取代或改善List的效率?
时间Wed May 23 12:54:20 2007
※ 引述《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)