美文网首页
二分法查找

二分法查找

作者: birdhsy | 来源:发表于2020-08-06 21:24 被阅读0次

    最近的一次面视中,向侯选人提出来的一个问题,侯选人最后选择了一个常用办法,其实自己真实的想让他用递归的办法来做这一道题。自己也来回顾一下吧。

自己也需练练手了,开始写一些算法。

二分法:二分法查找,前提必须是数组要是有序的,如果所提供的数组是无序的,那就需要对数据先进行排序。搜索过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束;如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较。如果在某一步骤数组为空,则代表找不到。这种搜索算法每一次比较都使搜索范围缩小一半。

递归的方法:

def binary_search(alists,finditem):

#alists=alists.sort()

#print (alists)

    n=len(alists)

if n==0:

print (False)

else:

mid= n//2

        if (alists[mid]==finditem):

print (True)

elif (alists[mid]>finditem):

binary_search(alists[0:mid],finditem)

else:

binary_search(alists[mid+1:], finditem)

if __name__ =='__main__':

testlist = [0, 0, 4, 8, 15, 30, 39, 50, 66, 86, 95]

binary_search(testlist, 15)

binary_search(testlist, 100)

相关文章

  • 二分法查找

    二分法基本查找 二分法遍历查找

  • 二分法查找

    二分法查找的前提是数组必须排序!!!二分法查找的前提是数组必须排序!!!二分法查找的前提是数组必须排序!!!二分法...

  • 刷前端面经笔记(九)

    1.JavaScript实现二分法查找? 二分法查找,也称折半查找,是一种在有序数组中查找特定元素的搜索算法。查找...

  • 数据结构-递归

    二分法查找

  • 查找算法

    三种查找算法:顺序查找,二分法查找(折半查找),分块查找,散列表

  • 二分查找

    以二分法来提升查找效率 二分法查找到key的合适位置 put get delete 二分查找的查找操作为O(log...

  • 算法和排序

    1、线性查找 2、二分法查找 3、冒泡排序

  • 查找算法

    查找算法 顺序查找法 时间复杂度:O(n) 二分法查找 二分法查找适用于有顺序的序列 时间复杂度:O(n) 核心思...

  • 算法图解1-2/11

    原书作者 Aditya Bhargava 1 算法简介 1.1 二分法查找 二分法查找,正是猜数字游戏的玩法:A...

  • 前端面试之算法二分法

    使用二分法的前提是,目标数组的元素必须是有序排列的,所以二分法属于有序查找算法 二分法又称为“折半查找”,从数组的...

网友评论

      本文标题:二分法查找

      本文链接:https://www.haomeiwen.com/subject/gunprktx.html