2016-01-25 32 views
1

这是一个基本问题使用跟踪表来协助干运行一个简单算法的问题。如何使用跟踪表执行干运行

我觉得最棘手的是什么时候在跟踪表中换新线?例如,采取以下问题:

enter image description here

这里是整数数组,它适用于: enter image description here

给出以下跟踪表作为一个完成的干燥运行。这里是解决方案:

enter image description here

据我所知,初始化变量 & 出现在第一线,但是当我进入While循环,我很想在第一行上放置值 也为,对于变量当前。从本质上说,这是我很想做的事:

enter image description here

为什么这个解决方案需要对现有的价值,这是5,出现在第二行?我想这个问题可以修改为'我何时在跟踪表中添加新行?'

谢谢。

回答

1

我认为没有具体的方式来做跟踪表,这意味着你必须在工作之前设置你的规则并继续。
考虑这个例子:
enter image description here

,这也:
enter image description here

你有没有注意到在每一个循环迭代之间的差异。在第一个例子中,他们将迭代器的初始化值放在第一行,而在第二个例子中,他们将循环迭代器的初始化放在第二行。
也看看wiki他们也把循环初始化放在第二行。
this video有类似的例子,我发布在这里,并始终在第二行开始循环迭代器。
this示例有完全不同的方法,这是跟踪表中新行中的每行代码。
你也可以找到跟踪表here

最后另一种不同的方法:

在我看来选择适合您有意义的规则,例如:
1,第一行包含默认值变量。
有关循环迭代,将循环迭代器放置在与此迭代影响的变量相同的行中,就像我上面发布的第二个示例。
关于你的问题我认为把当前的放在第二行的第一个值为5更清楚,这样你就可以以一种清晰的方式跟踪每个循环迭代对变量的影响。