Data structure algorithm--1 Sequential search Binary search

The time complexity of sequential search is O(n)

We can use the function enumerate in Python to traverse the list and return its index and value through enumerate

def linnear_search(li, val):
    for ind, v in enumerate(li):
        if v == val:
            return ind
    else:
        return None

You can also iterate through the list length:

def linear_search(li, val):     # 顺序查找复杂度为O(n)
    for i in range(len(li)):
        if li[i]==val:
            return i
    return

O(1)<O(logn)<O(n)<O(nlogn)<O(n*n)

But the time complexity of binary search is O(logn):

def binary_search(li,val):
    left=0
    right=len(li)-1
    while left<=right:
        mid=(left+right) // 2
        if li[mid]==val:    # 最后会找到mid
            return mid
        elif li[mid]>val:   # mid值大与查找值,就需要去左半侧查找,right指针就改变
            right=mid-1
        else:
            left=mid+1
    else:
        return None

Guess you like

Origin blog.csdn.net/qq_64685283/article/details/132286309