Java 如果数组包含100个元素,二进制搜索最多检查多少个元素?

Java 如果数组包含100个元素,二进制搜索最多检查多少个元素?,java,binary-search,Java,Binary Search,对于偶数长度的数组,它不是元素的一半,但是对于奇数长度的数组会发生什么呢 它平均检查logn元素。最多它将检查logn+1元素。不,它不是一半。把不同的箱子放在纸上检查。从10开始,你就会明白。你应该试着用手追踪:)试着在对算法做出任何暗示之前理解算法。只是一个提示:看看运行时的复杂性,它最多检查log2(n)个元素。在你的情况下,轮到7了。我现在明白了。将概念与消除一半数组的二进制搜索函数混淆。还有,为什么要将+1改为log2(n)?@Strategiger如果对2个元素的数组使用二进制搜索,

对于偶数长度的数组,它不是元素的一半,但是对于奇数长度的数组会发生什么呢

它平均检查logn元素。最多它将检查logn+1元素。

不,它不是一半。把不同的箱子放在纸上检查。从10开始,你就会明白。你应该试着用手追踪:)试着在对算法做出任何暗示之前理解算法。只是一个提示:看看运行时的复杂性,它最多检查log2(n)个元素。在你的情况下,轮到7了。我现在明白了。将概念与消除一半数组的二进制搜索函数混淆。还有,为什么要将+1改为log2(n)?@Strategiger如果对2个元素的数组使用二进制搜索,最糟糕的结果是什么?