为了清楚起见:这是一个与即将举行的考试相关的问题,但我认为答案可能会引起更大的群体的兴趣。
我需要跟踪类似于下面的代码,其中包含递归、数组的传递和重新排列等组件以及传递给递归函数的多个变量。
手动进行此类跟踪的最佳方法是什么?我所看到的方法的主要问题是要跟踪的变量太多。这使得使用函数调用树的方法立刻变得非常混乱。有没有一种结合表格和树木来追踪它的好方法?
示例代码
function f(array A, int i, int j)
repeat while i!= j
int m = (i+j)/2;
f(A, i, m);
f(A, m+1, j);
if (A[m] < A[j]) swap(A[m], A[j]);
j = j - 1
done
end;