作者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
1F:推 LiloHuang:看有没有办法推导出一个通式吧~ 不然就用C重写比较快 02/05 01:03
2F:→ aleelyle:你要不要列一下时间复杂度和演算法? 02/05 14:27
3F:→ reizarc:使用 PDL 系列的 module 看看 02/06 17:30
4F:→ charleshu:应该用C写XS Module,平均来说可以快10倍,假如你有很多 02/09 00:28
5F:→ charleshu:Array的index存取的话会快更多. 可以参考effective perl 02/09 00:29