jiay 发表于 2018-8-13 06:35:58

Python——此代码,待我揣摩揣摩

# 正常实现  
def BinarySearch(alist, item):
  
    first = 0
  
    last = len(alist)-1
  
    found = False
  
    while first <= last and not found:
  
      mindpoint = (last+first)//2
  
      if alist == item:
  
            found = True
  
      else:
  
            if item < alist:
  
                last = mindpoint - 1
  
            else:
  
                first = mindpoint + 1
  
    return found
  

  

  
# 引用递归实现
  
def RBinarySearch(alist, item):
  
    if len(alist) == 0:
  
      return False
  
    else:
  
      mindpoint = len(alist)//2
  
      if alist == item:
  
            return True
  
      else:
  
            if item < alist:
  
                return RBinarySearch(alist[:mindpoint], item)
  
            else:
  
                return RBinarySearch(alist, item)
  

  

  
testlist =
  
print(BinarySearch(testlist, 3))
  
print(RBinarySearch(testlist, 13))
页: [1]
查看完整版本: Python——此代码,待我揣摩揣摩