数据结构与算法----顺序查找(Python版)

一、顺序查找 Sequential Search
如果数据项保存在如列表这样的集合中, 我们会称这些数据项具有线性或者顺序关 系。
Python List 中,这些数据项的存储位 置称为 下标( index ,这些下标都是有 序的整数。
通过下标,我们就可以按照顺序来访问和 查找数据项,这种技术称为 顺序查找
要确定列表中是否存在需要查找的数据项
首先从列表的第 1 个数据项开始, 按照下标增长的顺序,逐个比对数据项, 如果到最后一个都未发现要查找的项,那么查找 失败。
数据结构与算法----顺序查找(Python版)_第1张图片
1、顺序查找:无序表查找代码
 
def sequentialSearch(alist, item):
    pos = 0
    found = False

    while pos < len(alist) and not found:
        if alist[pos] == item:
            found = True
        else:
            pos = pos + 1

    return found

testList = [1,2,3,4,5,6,23,34,24,32]
print(sequentialSearch(testList,5))
print(sequentialSearch(testList,11))
数据项在列表中,比对的一般情形如何?
因为数据项在列表中各个位置出现的概率是相同 的;所以平均状况下,比对的次数是 n/2
所以,顺序查找的算法复杂度是O(n)
 
实际上,我们在第三章的有序表 Search 方法实现中介绍过顺序查找
当数据项存在时,比对过程与无序表完全相同 不同之处在于,如果数据项不存在,比对可以提 前结束
       • 如下图中查找数据项 50 ,当看到 54 时,可知道后面 不可能存在 50 ,可以提前退出查找
数据结构与算法----顺序查找(Python版)_第2张图片
数据结构与算法----顺序查找(Python版)_第3张图片

你可能感兴趣的:(数据结构与算法)