二分查找算法

作者: 苟雨 | 来源:发表于2016-11-09 21:09 被阅读37次

    二分查找算法是一个即简单与好用的算法。时间复杂度和空间复杂度都很不错。下面是简单的实现

    #coding:utf-8
    #值得注意的是输入的数组必须是有序的!
    def binarySearch(num,target):    
      low = 0    
      high = len(num) - 1     
      while high >= low:        
        mid = (low + high) // 2 #将原数组二分        
        midValue = num[mid]        
        if midValue < target: #target比中值大表明要找的在右边            
          low = mid + 1        
        elif midValue > target:            
          high = mid - 1        
        else:            
          return (mid,midValue) #返回查找的值和索引
    if __name__ == '__main__':    
      num = [0, 1, 3, 5, 6, 7, 8, 9]    
      print binarySearch(num, 6)
    
    

    相关文章

      网友评论

        本文标题:二分查找算法

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