zoukankan      html  css  js  c++  java
  • python数据结构与算法之搜索

    搜索,顾名思义就是在一个序列中找出某个元素。

    二分查找

    二分查找只能作用于有序的顺序表中。

    def binary_search(alist, item):
        """二分查找,递归版"""
        n = len(alist)
        if n > 0:
            mid = n//2
            if alist[mid] == item:
                return True
            elif item < alist[mid]:
                return binary_search(alist[:mid],item)
            else:
                return binary_search(alist[mid+1:],item)
        return False
    
    
    if __name__ == '__main__':
        li = [17,20,26,44,45]
        print(binary_search(li,45))
        print(binary_search(li, 55))
    def binary_search(alist, item):
        """二分查找,非递归"""
        n = len(alist)
        first = 0
        last = n-1
        while first<=last:
            mid = (first+last)//2
            if alist[mid] == item:
                return  True
            elif item<alist[mid]:
                last = mid-1
            else:
                first = mid + 1
        return False

    二分查找时间复杂度是O(logn)

  • 相关阅读:
    Fusion access
    组网架构
    DHCP中继
    Vxlan配置
    redis多实例
    ansible实现redis角色
    ansible如何ssh免密链接(基于key验证)
    MySQL主从复制
    MySQL范例
    Ubuntu2004安装
  • 原文地址:https://www.cnblogs.com/maxiaonong/p/10533653.html
Copyright © 2011-2022 走看看