二分法算法讲解,配二分python 代码实现及其运行结果。

半片云烟,半片山河。
半分江湖,半分天地。

系列文章目录

提示:算法之二分法的写法,本篇文章主要以二分法写作为主,使用的主语言是python。


文章目录

  • 系列文章目录
  • 一、二分法算法原理是什么?
    • 1.二分法算法介绍
    • 2.二分法图解简介
  • 二、 二分法代码的基本实现方法
    • 1.二分法算法实现方法(1)


一、二分法算法原理是什么?

1.二分法算法介绍

       二分查找是一种算法,其输入一个有序的元素列表。如果要查找的元素包含再列表中,二分查找返回其位置;否则返回NULL。
       给一组数列列表,给定一个想要查找的值,每一次查找取中间值做比较,如何测试值比中间值的值高则取上半区,如何测试值比中间值的值低则取下半区。每次一般的取值方式,快速的查找到值的所在位置。
       二分法算法的时间复杂度是log2(n),因为每次都是折中所以时间复杂度是一半。!

2.二分法图解简介

在这里插入图片描述:
二分法算法讲解,配二分python 代码实现及其运行结果。_第1张图片

二、 二分法代码的基本实现方法

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))

运行结果:
二分法算法讲解,配二分python 代码实现及其运行结果。_第2张图片


你可能感兴趣的:(python,C++,算法与数据结构,算法,python,开发语言)