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

二分算法

时间:2018-07-06 16:39:37      阅读:179      评论:0      收藏:0      [点我收藏+]

标签:二分查找   div   log   turn   nbsp   查找   arch   none   enc   

## 二分查找
  - 每次查找会将查找范围缩小一半,对于有 n 个元素的序列最多仅需要 log n 次查找
  - 二分查找只能用于有序序列的元素查找

 

## 基本实现

 1 def binary_search(sorted_sequence, item):
 2     """
 3     sorted_sequence: 有序序列
 4     item: 需要查找的元素值
 5     return: 若序列中存在该元素,则返回该元素索引,若不存在,则返回None
 6     """
 7      low = 0
 8      high = len(sorted_sequence) - 1
 9      while low <= high:
10          mid = (low + high) // 2
11          guess = sorted_sequence[mid]
12          if guess == item:
13              return mid
14          if guess > item:
15              high = mid - 1
16          else:
17              low = mid + 1
18      return None

 

二分算法

标签:二分查找   div   log   turn   nbsp   查找   arch   none   enc   

原文地址:https://www.cnblogs.com/hycstar/p/9274216.html

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