如何使用跟踪表进行干运行

时间:2016-01-25 14:31:11

标签: algorithm testing trace

这是关于使用跟踪表来帮助简单算法的干运行的基本问题。

我觉得最棘手的是何时在跟踪表中添加新行?例如,请考虑以下问题:

enter image description here

以下是适用于的整数数组: enter image description here

以下跟踪表显示为完成干运行。这是解决方案:

enter image description here

我理解初始化变量 Number Lower & Upper 出现在第一行,但是当我进入While循环时,我很想将值 5 放在第一行 ,对于变量 Current 。从本质上讲,这是我想要做的事情:

enter image description here

为什么此解决方案要求Current的值(即5)出现在第二行?我想这个问题可以改为'我什么时候在跟踪表中换一个新行?'

感谢。

1 个答案:

答案 0 :(得分:2)

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

这也是:
enter image description here

您是否注意到每个循环迭代器之间的区别。在第一个例子中,他们将迭代器的初始化值放在第一行,在第二个例子中,他们将循环迭代器的初始化放在第二行。
另外看看wiki他们也把循环初始化放在第二行 同样this video和我在这里发布的例子类似,并且总是在第二行开始循环迭代器。
另外,this示例具有完全不同的方法,即跟踪表中新行中的每行代码 您还可以找到跟踪表here

的另一种不同方法

最后:

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