查找
从原理上看,查找算法很简单,其核心就是从某个数组中找到某个元素是否存在,如果存在则返回True,不存在则返回False。
顺序查找
存储于列表等集合中的数据项彼此存在线性或顺序的关系,数据项的位置就是他的下标,因为下标是有序的,所以能够顺序访问,因此可以进行顺序查找。
无序列表的顺序查找
顺序查找的思想就是从头遍历到尾去找到列表中是否存在要查找的元素,当我们进行查找的列表是没有大小顺序的时候我们只能把整个列表都遍历一遍。
代码的实现方式如下:
def seqSearch(alist, item):
pos = 0
found = False
while pos < len(alist) and not found:
if alist[pos] == item:
found = True
else:
pos += 1
# found = false found = True
return found
seqSearch([2, 6, 4, 2, 6, 7], 8)
有序列表的顺序查找
有序列表和无序列表进行查找的主要区别就在于停止条件,因为列表的有序性,所以当我们搜索到列表中的元素大于要查找的元素时便可以不再往下进行查找了。
代码的实现方式如下:
def seqSearch(alist, item):
pos = 0
found = False
# 加入一个停止判断器,当前数字大于item即停止
stop = False
while pos < len(alist) and not found and not stop:
if alist[pos] == item:
found = True
else:
if alist[pos] > item:
stop = True
else:
pos += 1
return found
seqSearch([2, 3, 4, 5, 6], 9)