我一直在努力理解二进制搜索算法这很简单,但我有一个问题困扰着我。我可能理解错了。
1)当我们开始在数组中搜索元素时,我们检查了三个场景 i)如果元素在中间。 ii)如果它大于中间元素。 iii)如果它小于中间元素。
我的问题是我理解这个算法试图通过跳过数组并使用上面的检查点来找到元素,但是如果我们要搜索的元素是在数组的开头或结尾。例如,如果
a = {12,14,15,16,17,18,19,20};
我们正在寻找12号,那么为什么它必须做所有的除法并检查它何时可以在数组的第一个元素中找到它。为什么我们不检查每个二进制搜索迭代的起始和结束元素,而不仅仅是上述三种情况?
感谢。