作者angusw (使者)
看板C_Sharp
标题Re: [问题] 一维阵列相乘能不用回圈嘛?
时间Mon Jun 24 11:08:22 2013
※ 引述《chris70211 (克里斯)》之铭言:
: 写程式的时候遇到一个问题 由於程式效能的关系
: 希望需要写一个两个一维阵列相乘的程式
: 目前的程式写法像是这样
: int []R1=new int[]{1,2,3,4,5,6};
: int []R2=new int[]{1,2,3,4,5,6};
: int []R3=new int[6];
: for (int i=0;i<R1.Length;i++)
: {
: R3[i]=R1[i]*R2[i];
: 或者是
: R3[i]=R1[i]*Math.Sin(i/t);//类似~~
: }
: 由於实际上的阵列长度可能会到五百或一千
: 用回圈做的话再处理时间上会花太多时间
: 会跟不上其它执行绪的处理速度
: 不知道这部分有没有什麽方法可以更省时的!! 谢谢>"<
请问你阵列R1 R2 的值 是动态产生的吗? 如果是 你可以宣告一个struct或是 class
去纪录r1 r2 r3 的值 在每次初始struct r3=r1*r2 或是 r3=r1*math.Sin...
等 如果是先行宣告 我会先宣告一组array int[] ind={0,1,2...R1.length-1};
再透过Linq 去产生 var r3=from n in ind select R1[n]*R2[n]或~~
你在参考看看
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.220.72.246
1F:→ ghostx2:我是觉得他有必要把执行绪架构讲得够清楚 才能持续讨论 06/24 13:16
2F:→ ghostx2:执行绪架构玩到大都是在解生产者与消费者行为 06/24 13:20
3F:→ michaelz:Linq里面不是一样回圈吗? 06/26 18:09