美文网首页
二分查找算法--Python语言描述

二分查找算法--Python语言描述

作者: 程慕枫 | 来源:发表于2018-01-01 12:10 被阅读0次

当列表的数据是有序的情况下, 使用二分查找算法是非常高效的, 以下使用两种方式实现了二分查找。

二分查找的一般算法描述:

# 二分查找算法
print('二分查找算法')
def binary_search(data, item):
    low = 0
    high = len(data) - 1

    while low <= high:
        mid = int((low + high) / 2)
        if data[mid] == item:
            return mid
        elif data[mid] > item:
            high = mid -1
        else:
            low = mid + 1
    return None

my_list2 = [1, 3, 5, 7, 9]
print(binary_search(my_list2, 7))

输出结果:

>>> 二分查找算法
>>> 3

------------------------------------分割线------------------------------------------------

二分查找算法的递归实现:

# 二分查找算法(递归描述)
print('二分查找算法(递归描述)')
def binary_search(low, high, data, item):
    if data[low] <= item <= data[high]:
        mid = int((low + high) / 2)
        if item == data[mid]:
            return mid
        elif item > data[mid]:
            return binary_search(mid + 1, high, data, item) 
        else:
            return binary_search(low, mid - 1, data, item)
    else:
        return None

my_list1 = [1, 3, 5, 7, 9, 11, 13, 15, 17]
print(binary_search(0, len(my_list1)-1, my_list1, 17))

输出结果:

>>> 二分查找算法(递归描述)
>>> 8

相关文章

  • 二分查找算法--Python语言描述

    当列表的数据是有序的情况下, 使用二分查找算法是非常高效的, 以下使用两种方式实现了二分查找。 二分查找的一般算法...

  • 算法之二分查找

    二分查找 二分查找是著名、高效并有应用广泛的查找算法。 二分常规实现 1.循环实现 下面我用python语言实现循...

  • PHP经典算法题

    PHP学习之路---算法题 1.使用PHP描述顺序查找和二分查找(也叫做折半查找)算法,顺序查找必须考虑效率,对象...

  • 算法之二分查找

    排序算法 二分查找 用于有序元素列表的查找性能: Python实现: C#实现

  • 2020-08-26

    二分查找 描述 二分查找是一种算法,其输入是一个有序的元素列表(元素可比较),如果查找的元素包含在列表中,二分查找...

  • 数据结构和算法--二分查找

    二分查找 二分查找的思想 二分查找(Binary Search)算法,也叫折半查找算法。 二分查找针对的是一个有序...

  • 每天学习一点儿算法--选择排序

    很多算法只有在数据经过排序后才管用,比如我们之前学习的二分查找。当然,很多语言都内置了排序算法,比如Python中...

  • PHP算法

    PHP算法 使用PHP描述顺序查找和二分查找(也叫做折半查找)算法,顺序查找必须考虑效率,对象可以是一个有序数组二...

  • 数据结构与算法系列——二分查找

    二分查找算法的简单介绍 今天我们来学习一下二分查找算法,也叫做折半查找算法。使用二分查找算法的前提是数据需要是有序...

  • python 算法开发笔记

    前言 最近看完《算法图解》对python的算法有点了解,特记录下来 算法概括 二分查找的速度比简单查找快得多 算法...

网友评论

      本文标题:二分查找算法--Python语言描述

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