[問題] 迴圈效能

看板Ruby作者 (CA)時間17年前 (2008/02/22 15:03), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/2 (看更多)
考慮以下代碼: 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
文章代碼(AID): #17ldFEye (Ruby)
討論串 (同標題文章)
以下文章回應了本文
完整討論串 (本文為第 1 之 2 篇):
文章代碼(AID): #17ldFEye (Ruby)