zoukankan      html  css  js  c++  java
  • 列表查找以及二分查找

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

    • 输入:列表、待查找元素
    • 输出:元素下标或未查找到元素
    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))
  • 相关阅读:
    Log4j详细介绍(五)----输出地Appender
    Java抽象类与接口的区别
    深入理解Java的接口和抽象类
    小程序
    小程序
    小程序
    CMS
    CMS
    微信小程序
    微信小程序
  • 原文地址:https://www.cnblogs.com/catxjd/p/9026895.html
Copyright © 2011-2022 走看看