欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

二分查找与线性查找

程序员文章站 2022-03-14 23:48:32
...

二分查找

二分查找的前提是数列是有序的(升序或者降序),本文以下代码假设数据是按升序排序的,这是一种较为常用的查找方法。

#假设数列升序排列
def my_Binary(list,items):  #items为要查找的元素
    min = 0
    max = len(list) - 1
    while min <= max:
        r = round((min + max)/2)
        if list[r] > items:
            max = r - 1
        elif list[r] < items:
            min = r + 1
        else:
            return r

注:round()函数是一个取整函数

线性查找

线性查找算法比较简单,即对数组元素一个一个地检查,直到找到该元素为止。
编程思路:
1)遍历数组元素,利用for循环,for i in range()
2) if语句判断list[i]是否等于要查找的元素

def my_linersearch(list,x):  #x为要查找的元素
    for i in range(len(arr)):
        if (arr[i] == x):
            return i
    return -1
if my_linersearch(arr,x) == -1:
    print('x不在列表中')
else:
    print('x在列表中,它的下标是:', my_linersearch(arr,x))