很早看过这个视频,但今天要拿出来用时发现已经忘得差不多了。因此在这儿再复习一下。
找出三个数字中最大者
- 输入:三个数值
- 处理:三者最大算法
输出:打印最大值
策略1:通盘比较
- 将每一个值与其他所有值比较以确定最大值
if x1 > x2 and x1 >= x3:
max = x1
elif x2 >= x1 and x2 >= x3:
max = x2
else:
max = x3
- 如果是五个值比较,表达式包含四个and,比较复杂
每个表达式结果没有被互相利用,效率低(x1与x2比较了两次)
策略2:决策树
决策树方法可以避免冗余比较
但比较值增加时,结构变得非常复杂
if x1>=x2:
if x1>=x3:
max = x1
else:
if x2 >=x3:
max = x2
else:
max = x3
策略3:顺序处理
逐个扫描每个值,保留最大者
max = x1
if x2 > max:
max = x2
if x3 > max:
max = x3
寻找一组数中的最大值
def main():
n = eval(input("How many numbers are there?"))
#将第一个值赋给max
max = eval(input("Enter a number >> "))
#连续与后面n-1值进行比较
for i in range(n-1):
x = eval(input("Enter a number >> "))
if x > max:
max = x
print("The largest value is", max)
main()