最近在看《算法导论》,看到多线程算法这章中,有一个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)呢?求大神指导
虽然是并行算法,和规模也是相关的,一般算法涉及的问题规模都很大n的值很大
即便一次可以计算100次加法
即100次
cij = cij+aik+bkj
那么,假设规模是10000 ==>n=10000
10000/100 =n /c0 =n * c1 -----c1 =1/c0 ,c0=100 ,也还是O(n)
我的问题是为什么前面两个并行循环的复杂度是O(lgn)+O(lgn)?
“时间复杂度”的定义是啥?