如果你写一个算法,它不会给你输出你期望从给定的输入,那么可能是时候尝试算法跟踪了。这是一种查看内部情况的方法算法通过记录所有变量在算法的每个阶段。通过这种方式,您可以看到哪里出了问题,什么时候出了问题。

假设我们有一个算法(in伪码):

1:输入A2:输入B3:输入C4:对于I=1至C5:A=A+B6:下一步
我们可以通过做干式运行首先,我们创建一些输入值-在真实世界算法跟踪时,选择这些值是因为它们会引起麻烦,或者可能会引起麻烦。由于在本例中我没有具体的问题要解决,并且只是简单地解释了跟踪是什么,所以我选择了大量随机值。

我提供的输入按顺序是2、3和4。虚线代表未定义值-在我们为这些变量指定一个值之前,不可能假设这些变量的值为0。

行号|A|B|C|I------------------------1|2|-|-|-2    | 2 | 3 | - | -3    | 2 | 3 | 4 | -4    | 2 | 3 | 4 | 15    | 5 | 3 | 4 | 16    | 5 | 3 | 4 | 25    | 8 | 3 | 4 | 26    | 8 | 3 | 4 | 35    | 11| 3 | 4 | 36    | 11| 3 | 4 | 45    | 14| 3 | 4 | 46    | 14| 3 | 4 | 4
这里。我们基本上所做的是记录算法执行过程中每个阶段所有变量的值。现在可以看到,在算法的任何阶段,哪些变量将具有哪些值。这使得调试更容易,因为程序员可以在任何给定的时间查看受算法影响的所有事物的状态。这在查找时也很方便循环不变量s、 它们是迭代循环这可以帮助精明的程序员提高效率。

登录登记在这里写点什么或联系作者。