为了清楚起见:这是一个与upcomming考试相关的问题,但我认为answare可能对一个更大的团体感兴趣。
我需要跟踪类似于下面的代码,代码包括递归,传递和重新排列数组以及传递给递归函数的多个变量。
手工制作这种痕迹的最佳方法是什么? 我所看到的方法的主要问题是有很多变量需要跟踪。这使得使用函数调用树的方法很快就会变得混乱。是否有一种很好的方法来跟踪表和树的组合?
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;