最近算法课上,老师布置了一个题目:
“格雷码”(Gray code)是一个长度为2n的序列,满足
A) 每个元素都是长度为n比特的串。
B) 序列中无相同元素。
C) 连续的两个元素恰好只有1比特的不同。例如,n=2时{00,01,11,10}
(1) 构造n=3时的“格雷码”。
(2) 利用分治策略设计一个算法对任意的n构造相应的“格雷码”
我是用了一个递归的方法来解决这个问题,下面是代码:
总的来说这个算法对数据结构的应用还是比较成功的,但是在性能方面还有改进的空间,当N达到100的时候就会比较慢,下次有时间要把这个算法重写一下,以得到更高的效率.