码迷,mamicode.com
首页 > 编程语言 > 详细

两种方法实现Python二分查找算法

时间:2018-01-04 16:33:59      阅读:169      评论:0      收藏:0      [点我收藏+]

标签:pos   def   ber   log   arch   lis   实现   查找   sea   

一.

arr=[1,3,6,9,10,20,30]
def findnumber(l,h,number):
    mid=(l+h)//2
    if arr[mid]==number:
        print("找到了"+str(mid))
    elif arr[mid]<number:
        l = mid
        return findnumber(mid+1,h,number)
    elif arr[mid]>number:
        h = mid
        return findnumber(0,mid-1,number)
    else:
        print("没有找到")

findnumber(0,len(arr)-1,10)

  二.

def binary_search(data_source,find_n):
    #取中位数
    mid=int(len(data_source)/2)

    if len(data_source)>=1:
        if data_source[mid]>find_n:  #中位数大于要查找的数,则要查找的数在左半部分,继续调用二分算法进行查找
            binary_search(data_source[:mid],find_n)
        elif data_source[mid]<find_n:  #中位数小于要查找的数,则要查找的数在右半部分
            binary_search(data_source[mid:],find_n)
        else:   #中位数等于要查找的数
            print("找到了:",data_source[mid])
    else:
        print("没有找到")
        
data=list(range(1,100000))
binary_search(data,88888)

  

 

两种方法实现Python二分查找算法

标签:pos   def   ber   log   arch   lis   实现   查找   sea   

原文地址:https://www.cnblogs.com/liushaocong/p/8193541.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!