半片云烟,半片山河。
半分江湖,半分天地。
系列文章目录
提示:算法之二分法的写法,本篇文章主要以二分法写作为主,使用的主语言是python。
一、二分法算法原理是什么?
1.二分法算法介绍
二分查找是一种算法,其输入一个有序的元素列表。如果要查找的元素包含再列表中,二分查找返回其位置;否则返回NULL。给一组数列列表,给定一个想要查找的值,每一次查找取中间值做比较,如何测试值比中间值的值高则取上半区,如何测试值比中间值的值低则取下半区。每次一般的取值方式,快速的查找到值的所在位置。
二分法算法的时间复杂度是log2(n),因为每次都是折中所以时间复杂度是一半。!
2.二分法图解简介
在这里插入图片描述:
二、 二分法代码的基本实现方法
1.二分法算法实现方法(1)
代码如下(示例):
my_list = [45,55,65,35,85]
#定义函数
def binary_search(list,item):
#len()函数会得到数列的所含的数字具体数值。
# 二我们计算出来数字位置下表从0开始所以-1
high = len(list)-1
low = 0
while high >= low:
#算取中间的值,奇数向下取整
mid =int(low+(high-low)/2)
#猜的值是中间值。
guess = list[mid]
if guess == item:
return mid
elif guess < item:#如果猜的值小于给定的值
low = mid+1
elif guess > item:#如果猜的值大于给定的值
high = mid-1
return None
print(binary_search(my_list,65))
print(binary_search(my_list,22))
运行结果: