算法课碰到的问题,尝试用一次Python写写看了,不过时间复杂度还是挺高的O(n*2^n)。
Gray码是一个长度为2^n的序列。序列中无相同元素,每个元素都是长度为n位的(0,1)串,相邻元素恰好只有一位不同,用分治策略设计一个算法对任意的n位构造相应的Gray码。
1 | class GrayCode: |
主要核心就一行return那里,利用了二进制两两xor得出格雷码的特性。
算法课碰到的问题,尝试用一次Python写写看了,不过时间复杂度还是挺高的O(n*2^n)。
Gray码是一个长度为2^n的序列。序列中无相同元素,每个元素都是长度为n位的(0,1)串,相邻元素恰好只有一位不同,用分治策略设计一个算法对任意的n位构造相应的Gray码。
1 | class GrayCode: |
主要核心就一行return那里,利用了二进制两两xor得出格雷码的特性。