建表,递推求出0-n的所有数的二进制倒序,复杂度O(n):
这里的n,L满足n=(2^L)-1
二进制串长度L, 求出某个数n的二进制倒序,算法思想复杂度O(log L):
网上有一个 雷德算法, 大致思路也是递推求得1-n的所有数的二进制逆序,不过方法比较显然麻烦,每一次都要在之前的逆序数基础上找第一个高位为0的,变为1。因此复杂度比较高。
____________________________________________________________________________________________________________
分析一下雷德算法,虽然for循环里嵌套了while,但由于所有循环都在做进位,所以总复杂度还是O(n),不过这个O(n)前面带的常数比较高。 会达到2+2+3。而且还带了一个if语句。

2099

被折叠的 条评论
为什么被折叠?



