作者heliosy (這一欄是要做啥用的)
看板Perl
標題[請益] 巨大array的運算
時間Fri Feb 5 00:51:15 2010
先說例子
我有一個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
推 LiloHuang:看有沒有辦法推導出一個通式吧~ 不然就用C重寫比較快 02/05 01:03
→ aleelyle:你要不要列一下時間複雜度和演算法? 02/05 14:27
→ reizarc:使用 PDL 系列的 module 看看 02/06 17:30
→ charleshu:應該用C寫XS Module,平均來說可以快10倍,假如你有很多 02/09 00:28
→ charleshu:Array的index存取的話會快更多. 可以參考effective perl 02/09 00:29