首页 > 其他 > 详细

列表查找以及二分查找

时间:2018-05-12 00:53:35      阅读:176      评论:0      收藏:0      [点我收藏+]

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

  • 输入:列表、待查找元素
  • 输出:元素下标或未查找到元素
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))

 

列表查找以及二分查找

原文:https://www.cnblogs.com/catxjd/p/9026895.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!