如何计算算法成本?

时间:2018-07-02 09:50:14

标签: java genetic-algorithm cost-management

我必须计算这种算法的成本。

我在考虑指数成本。我尝试了递归关系。 4*T(n/4) + c*n,最后是((4^n) - 1)/3

对吗?还有其他计算方法吗?

int m(int a[][]) {
    return m1(a, 0, a.length-1, 0, a[0].length-1);
}

int m1(int a[][], int l1, int l2, int c1, int c2) {
  if(c1 > c2 || l1 > l2) return 0;
  if(c1 == c2 && l1 == l2) return a[l1][c1];
  int c = (c1+c2)/2,
      l = (l1+l2)/2;

  return m1(a, l1, l, c1, c) + 
         m1(a, l1, l, c+1, c2) + 
         m1(a, l+1, l2,c1, c) + 
         m1(a, l+1, l2, c+1, c2);
}

1 个答案:

答案 0 :(得分:0)

据我所知:在每个阶段,我们将问题空间分为四个部分。为了合并子问题的结果,我们将四个整数相加,此操作在恒定时间 O(1) 内发生。

假设n是问题中矩阵a的高度,m是问题中矩阵a的宽度

我们可以将复杂性可视化为具有 n x m 叶节点和高度 log4(nm) 的 4-nary 树。 .树中的节点总数为O(nm),因此复杂度为O(nm)

如果没有并行性,这种递归算法应该不会比矩阵上的顺序算法快。