zoukankan      html  css  js  c++  java
  • 搜索算法

    1、二分法查找

    def search(alist,item,start=0,end=0):
        # print("%s-%s" % (start, end))
        if start > end:
            return None
    
        mid = (start + end) // 2
    
        if alist[mid] == item:
            return mid
        elif alist[mid] > item:
            return search(alist, item, start, mid - 1)
        else:
            return search(alist, item, mid + 1, end)
    
    def binary_search(alist,item):
        """二分查找"""
        return search(alist,item,0,len(alist) -1)
    
    if __name__ == '__main__':
        a = [1, 2, 3, 4, 5,6, 242, 823]
        ret = binary_search(a, 1)
        print(ret)
    
        ret = binary_search(a, 2)
        print(ret)
    
        ret = binary_search(a, 3)
        print(ret)
    
        ret = binary_search(a, 4)
        print(ret)
    
    
        ret = binary_search(a, 5)
        print(ret)
    
        ret = binary_search(a, 6)
        print(ret)
    
        ret = binary_search(a, 242)
        print(ret)
    
        ret = binary_search(a, 823)
        print(ret)
    
        ret = binary_search(a, 8)
        print(ret)
  • 相关阅读:
    odoo10 入门
    git 命令详细介绍
    odoo中Python实现小写金额转换为大写金额
    {DARK CTF } OSINT/Eye
    2020 12 18
    2020 12 17
    2020 12 16
    2020 12 15
    2020 11 14
    2020 11 13
  • 原文地址:https://www.cnblogs.com/bad-robot/p/10089771.html
Copyright © 2011-2022 走看看