为了简单,函数处理的是一个整数列表。
这个算法假设列表不为空,并且其中的项的顺序是随机的。
过程:
1.讲列表的第一项当作最小项
2.向右搜索以寻找更小的项
3.若找到了,则将最小项的位置重置为当前位置
4.return最小值
def ourMin(lyst):
minpos = 0
current = 1
while current < len(lyst):
if lyst[current] < lyst[minpos]:
minpos = current
current += 1
return minpos
利用以上思路编写的顺序搜索一个列表
def linearSearch(target, lyst, profiler):
"""Returns the position of the target item if found,
or -1 otherwise."""
position = 0
while position < len(lyst):
profiler.comparison()
if target == lyst[position]:
return position
position += 1
return -1