找出递归程序的时间复杂度

时间:2016-08-19 08:51:22

标签: algorithm recursion data-structures time-complexity

有谁可以帮我理解(一步一步)如何找到以下程序的运行时复杂性?

   int memo[101][101];
int findMinPath(vector<vector<int> >& V, int r, int c) {
  int R = V.size();
  int C = V[0].size();
  if (r >= R || c >= C) return 100000000; // Infinity
  if (r == R - 1 && c == C - 1) return 0;
  if (memo[r][c] != -1) return memo[r][c];
  memo[r][c] =  V[r][c] + min(findMinPath(V, r + 1, c), findMinPath(V, r, c    + 1));
  return memo[r][c];
}

1 个答案:

答案 0 :(得分:0)

当输入为:'size -r'时,此过程与输入同时增长;每次调用findMinPath时,输入减少1,最终为零并终止。