列表查找以及二分查找

Posted 双皮奶不要红豆

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了列表查找以及二分查找相关的知识,希望对你有一定的参考价值。

列表查找:从列表中查找指定元素

  • 输入:列表、待查找元素
  • 输出:元素下标或未查找到元素
list1=[1,3,4,5,6,8,9,12,15,20]
print(list1.index(8))
def listSearch(list,num):
    i=0
    while i<len(list)-1:
        if list[i]==num:
            return i
        else:
            i=i+1
        
    return None

二分查找

二分查找的前提是列表是有序的

def search(arr,num):
    low=0
    high=len(arr)-1
    while low <= high:
        mid=(low+high)//2
        if arr[mid]>num:
            high=mid-1
        elif arr[mid]<num:
            low=mid+1
        else:
            return mid
    return None

list1=[1,3,4,5,6,8,9,12,15,20]
print(search(list1, 8))

递归版二分查找:

def bin_serach_rec(li,val,low,high):
    if low<=high:
        mid = (low+high)//2
        if li[mid] >val:
            return bin_serach_rec(li,val,low,mid-1,)
        elif li[mid]<val:
            return bin_serach_rec(li,val,mid+1,high)
        else:
            return mid
    else:
        return

li = list(range(0,101,2))
print(serach(li,98))

 

以上是关于列表查找以及二分查找的主要内容,如果未能解决你的问题,请参考以下文章

算法----列表查找以及列表排序

列表查找及二分查找

列表查找及二分查找

二分查找

算法——二分查找

python算法:二分查找