2016-01-25 31 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更清楚,這樣你就可以以一種清晰的方式跟蹤每個循環迭代對變量的影響。