作者legnaleurc (CA)
看板Ruby
标题[问题] 回圈效能
时间Fri Feb 22 15:03:39 2008
考虑以下代码:
prime = Array.new( 20000000, true )
prime[0, 1] = false, false
for i in 2..( prime.length ** 0.5 ).floor
if prime[i]
j = i << 1
while j < prime.length
if prime[j]
prime[j] = false
end
j += i
end
end
end
是以Sieve of Eratosthenes去产生一个长度20000000的质数表
以上是我目前试出最快的实作
但是也要40秒才跑得完
有趣的是如果内部回圈用step方法反而会更慢
然而Python用相同的方法确可以达到18秒( C++和Java就别提了 )
Ruby是否能再优化呢
--
自High笔记(半荒废)
http://legnaleurc.blogspot.com/
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.123.224.125