据我所知,在最坏的情况下,二进制搜索所需的猜测次数为lg(n)+1,其中n是您要搜索的元素数。我完全理解这一点,但是如果n是2的幂,这显然只给你一个很好的数字。如果n不是2的幂,我告诉你只需要升到2的下一个幂。所以例如5会最多8然后lg(8)+ 1 = 4.但是如果你处理的是5个元素,那么最坏的情况就是3个猜测?我错过了什么?
谢谢!
答案 0 :(得分:0)
实际公式是 floor(log(n)+ 1)(使用base-2 log )。因此, floor(log(5)+ 1) = floor(2.x + 1) = floor(3.x) = 3