二分查找算法及分析

  对于有序表,在顺序查找中,如果第一个数据项不匹配查找项的话,那最多患有n-1个待比对的数据项。

  那么,有没有方法利用有序表的特性,迅速缩小待比对数据项的范围?二分查找

二分查找:

  从列表中间开始比对:如果列表中间的祥匹配查找项,则查找结束如果不匹配,那么就有两种情况:

  1.列表中间项比查找项大,那么查找项只可能出现在前半部分

  2.列表中间项比查找项小,那么查找项只可能出现在后半部分

  无论如何,我们都会将比对范围缩小到原来的一半:n/2,然后继续采用上面的方法进行查找,每次队徽比对范围缩小一半。

  二分查找算法实际上体现了解决问题的典型策略:分而治之

  将问题分为若干个更小规模的部分,通过解决每一个小部分问题,并将结果汇总得到原问题的解,显然,递归算法就是一种典型的分治策略算法,二分法也适合用递归算法来实现。

  二分法查找的算法复杂度o(logn)

猜你喜欢

转载自www.cnblogs.com/LBDJSBP/p/13184605.html