Python实现各类数据结构和算法---折半查找

来源:互联网 发布:新浪云绑定域名 编辑:程序博客网 时间:2024/06/06 00:51

递归和非递归形式实现二分查找

#coding:utf-8a=[1, 2, 3, 4, 5, 6, 8, 20, 24, 31, 35]#-----------------递归二分查找------------------b=10def binarySearch(array,n,left,right):    mid=left+(right-left)/2    if(left>right):        print 'find failed'        return -1    else:        if(array[mid]>n):            return binarySearch(array, n, left, mid-1)        elif(array[mid]<n):            return binarySearch(array, n, mid+1, right)        else:            print 'find it'            return midprint binarySearch(a, b, 0, len(a)-1)#-------------------非递归查找------------------------c=5def binary_Search(a,n):     low = 0    high = len(a)-1    while low <= high:         middle = (low+high)/2         if a[middle] == n:             print 'find it'            return middle+1         elif a[middle] < n:            low = middle + 1         else:            high = middle - 1     print 'find failed'    return -1print binary_Search(a,c)


0 0
原创粉丝点击