考虑维度 n 的任意二进制向量。对于 n = 4,示例向量可能是1100。
对于这样的向量,我想知道其位数值为1的最顶层位置。对于上面的1100示例,我想得到答案4(从对)。
上述示例案例的递归O(log( n ))解决方案(或多或少二进制搜索)是
我的问题:假设在实际设置中1)n不大于普通计算机上的字大小(即 n <= 64),2)我们&# 39;重新给予&#34;普通&#34;通用指令集,有没有办法在O(1)运算(最差情况)中相对于向量的大小而不是O(log( n ))?我悄悄地希望可能会有一些可以利用的按位指令组合,尽管我的期望并不高:(。
注意:使用某种将每个可能的向量映射到结果的静态结构是不实际的(例如 n = 64的情况需要太多的内存)。