TAOCP V4.F2 格雷码(3)
本文分析书中算法L。
算法L描述:
分析:
算法的关键是“焦点指针”数组 f[]。
我们以前已经知道:格雷码的生成,可以由序列1,2,3,...,n 经函数g()就
可以得到。算法L虽并不明显的出现1,2,3,...,n,但是“焦点指针”数组已经
隐式表示了自然数序列1,2,3,...,n。
假如当前到达第K个格雷码,由以前的知识知道:我们只要知道K的二进制“直尺函
数”的值,就可以得到第K+1个格雷码的形式。而K的二进制“直尺函数”的值,就等
于K的二进制表示的末尾1的个数。因此,二进制“直尺函数”的变化,可以由二进制
进位的情形来描述。
“焦点指针”数组 f[],模拟了二进制的进位情形。