首页 新闻 会员 周边 捐助

《算法导论》中parallel for 的时间复杂度

0
悬赏园豆:5 [待解决问题]

最近在看《算法导论》,看到多线程算法这章中,有一个parallel for循环的例子,如下:
parallel for i = 1 to n
       parallel for j = 1 to n
              cij = 0
              for k = 1 to n
                    cij = cij +aik +bkj
书上说的时间复杂度为O(lgn)+O(lgn)+O(n)=O(n);也就是说一个parallel for 循环的复杂度是O(lgn),既然是并行循环,为什么不是O(1)呢?求大神指导

jintianya的主页 jintianya | 初学一级 | 园豆:197
提问于:2014-07-15 19:11
< >
分享
所有回答(2)
0

虽然是并行算法,和规模也是相关的,一般算法涉及的问题规模都很大n的值很大

即便一次可以计算100次加法

即100次

cij = cij+aik+bkj

那么,假设规模是10000 ==>n=10000

10000/100 =n /c0 =n * c1 -----c1 =1/c0 ,c0=100 ,也还是O(n) 

lm_whales | 园豆:204 (菜鸟二级) | 2014-07-15 23:14

我的问题是为什么前面两个并行循环的复杂度是O(lgn)+O(lgn)?

支持(0) 反对(0) jintianya | 园豆:197 (初学一级) | 2014-07-25 21:10
0

“时间复杂度”的定义是啥?

Launcher | 园豆:45050 (高人七级) | 2014-07-16 08:47
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册