三者最大实例分析

很早看过这个视频,但今天要拿出来用时发现已经忘得差不多了。因此在这儿再复习一下。

找出三个数字中最大者

  • 输入:三个数值
  • 处理:三者最大算法
  • 输出:打印最大值

    策略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()
posted @ 2016-02-10 12:36  Jeff_blog  阅读(117)  评论(0编辑  收藏  举报