搜索最小值
设计一个简单的找寻最小的算法:
该算法首先是将列表中的第一个值作为最小项,然后向右搜索以找到一个更小的值,如果找到了就将最小项的位置设置为当前的位置。当这个算法到达列表的最右端的时候,它就将返回最小项的位置。
开发以下的indexOfMin函数:
def indexOfMin(lyst):
"""返回最小项的索引"""
minIndex=0
currentIndex=0
while currentIndex<len(lyst):
if lyst[currentIndex]<lyst[minIndex]:
minIndex=currentIndex
pass
currentIndex+=1
return minIndex
if __name__=="__main__":
index=indexOfMin([1,2,3])
print(index)
pass
以上程序的返回值为0
算法的复杂度分析
函数里面,循环的外面,有三条指令返回相同的次数,而不管列表的大小是多少。因此可以不用考虑他们。在循环之中,还有三条指令,包括if语句中比较,以及在每一次的循环过程中所执行的currentIndex的递增。这个算法必须访问列表中的每一项,以确保它找到了最小项的位置,因此,对于问题大小为n的列表,该算法必须进行n-1次的比较。因此算法的复杂度为O(n),线性阶
顺序搜索一个列表
python中的in运算作为list类中