二分查找(Binary Search):这是一种效率相对较高的查找算法。
# 问题:
给定一个待查找的目标值,target,和一个数组,Array。我们想要在这个数组中找到目标值所在位置。
# 分析:
自然,我们可以遍历整个数组,如果查到目标值,那就返回对应的索引位置,但这样数组很大的时候,时间开销也会很大。很明显,这是一种比较笨的直脑筋方法。
So,二分查找可以挺身而出。(BS需要数组是事先排好序的)
首先,我们找到数组Array的中间位置K,其次,将target与Array[K]对比,如果想等,那直接返回K即可;如果不等,将分成两种情况:
a、target < Array[K],则,我们可以继续在Array[0,...,K]之间再次进行BS算法;
b、target > Array[K],则, 我们可以继续在Array[K+1:]之间进行BS算法;
思想阐述完毕,代码时间来到~~~
# 版本1:数组中没有重复元素
#版本2 : 数组中包含重复值
网友评论