三者最大实例分析

来源:互联网 发布:编程常用的算法 编辑:程序博客网 时间:2024/06/06 00:47

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

找出三个数字中最大者

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

    策略1:通盘比较

  • 将每一个值与其他所有值比较以确定最大值
if x1 > x2 and x1 >= x3:    max = x1elif x2 >= x1 and x2 >= x3:    max = x2else:    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 = x1if x2 > max:    max = x2if 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()
0 0