今天无聊写了个二分查找,,心血来潮看一下数据量和它二分的次数,最后输出的结果却有点奇怪
这可不是我学过的2分查找,10个数据不是应该2分个4次的吗
仔细分析了一下,发现问题出现在中间点的选择上 像我这个例子中有10个元素 index 0-9 如果mid= (start +end) /2 的话,中间点总是会偏左一点
相信很多人都会忽略了这个问题,但这会让2分的次数增加,所以这种索引从0开始的数组如果找中间点 建议写成 mid=(start+end+1)/2 这样
这才是我学过的2分查找!
我的水平有限,可能看不到真正的问题,如果有不对的地方欢迎指正。
人之所以有一张嘴,而有两只耳朵,原因是听的要比说的多一倍。