[請益] 巨大array的運算

看板Perl作者 (這一欄是要做啥用的)時間15年前 (2010/02/05 00:51), 編輯推噓1(104)
留言5則, 4人參與, 最新討論串1/2 (看更多)
先說例子 我有一個array (1 2 3 4) 然後我要對它做運算 mean(1) + mean(2) + mean(3) + mean(4) = m1 mean: 代表對括號中的值取平均 mean(1 2) + mean(2 3) + mean(3 4) = m2 mean(1 2 3) + mean(2 3 4) = m3 mean(1 2 3 4) = m4 最後所求是 mean(m1 m2 m3 m4) 有點類似sliding window 方法我是已經寫完了 所用的就是for 跟 map的組合 小陣列ok 但是我的array有時會大到幾十萬... 所以會變的很慢很慢 請問有什麼方法可以改善嗎 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.109.72.12

02/05 01:03, , 1F
看有沒有辦法推導出一個通式吧~ 不然就用C重寫比較快
02/05 01:03, 1F

02/05 14:27, , 2F
你要不要列一下時間複雜度和演算法?
02/05 14:27, 2F

02/06 17:30, , 3F
使用 PDL 系列的 module 看看
02/06 17:30, 3F

02/09 00:28, , 4F
應該用C寫XS Module,平均來說可以快10倍,假如你有很多
02/09 00:28, 4F

02/09 00:29, , 5F
Array的index存取的話會快更多. 可以參考effective perl
02/09 00:29, 5F
文章代碼(AID): #1BQli6Gb (Perl)
討論串 (同標題文章)
文章代碼(AID): #1BQli6Gb (Perl)