顺序查找

🎉摘要:Python 是一门解释型、面向对象、动态类型的高级编程语言,由荷兰程序员 Guido van Rossum 于 1991 年发布,核心设计理念是优雅、明确、简单。

顺序查找(也叫线性查找)是最简单的查找算法。

核心思路为从数据集合的第一个元素开始,一个一个按顺序比对,直到找到目标元素,或者遍历完所有元素为止。

它不需要数据提前排序,无任何前提条件,直接暴力遍历,是所有查找算法中最基础、最容易理解的一种。


算法执行步骤如下:

(1)从列表第 1 个元素开始查找

(2)将当前元素与目标值进行比较

(3)如果相等 → 查找成功,返回位置和结果

(4)如果不相等 → 继续检查下一个元素

(5)遍历完所有元素都没找到 → 查找失败


示例代码:

def sequential_search(arr, target):
    """
    顺序查找函数
    :param arr: 待查找的列表(可以有序/无序)
    :param target: 要查找的目标值
    :return: 找到返回元素索引,未找到返回-1
    """
    # 遍历列表,同时获取索引和元素
    for index, value in enumerate(arr):
        # 逐个比较元素和目标值
        if value == target:
            return index  # 找到目标,立即返回索引
    # 遍历完所有元素都没找到
    return -1


if __name__ == '__main__':
    test_list = [12, 5, 8, 21, 3, 19, 7]
    
    # 查找存在的元素
    target1 = 21
    result1 = sequential_search(test_list, target1)
    if result1 != -1:
        print(f"元素 {target1} 找到,索引为:{result1}")
    else:
        print(f"元素 {target1} 未找到")

    # 查找不存在的元素
    target2 = 100
    result2 = sequential_search(test_list, target2)
    if result2 != -1:
        print(f"元素 {target2} 找到,索引为:{result2}")
    else:
        print(f"元素 {target2} 未找到")

运行结果:

元素 21 找到,索引为:3
元素 100 未找到

  


说说我的看法
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
其他应用
公众号