是要从一百万个年龄序列表中找出年龄最大的一个,要是没有算法,可就是一件很困难的事了。可计算机利用软件瞬间就可以找出最大值,计算机要靠软件(程序)支持,编写程序要依赖算法,因此我们要编写出合理的、高效的算法就非常必要了。
请大家思考:如何写出这个问题的一个算法呢?
算法1:
S1 先假定序列中的第一个数为"最大值"。
S2 将序列的第二个整数值与"最大值"比较,如果第二个整数大于"最 大值",这时就假定这个数为"最大值"。
S3 将序列的第三个整数值与"最大值"比较,如果第三个整数大于"最 大值",这时就假定这个数为"最大值"。
S4 将序列的第四个整数值与"最大值"比较,如果第四个整数大于"最 大值",这时就假定这个数为"最大值" 依此类推
Sn 将序列的第n个整数值与"最大值"比较,如果第n个整数大于"最 大值",这时就假定这这个数为"最大值"。
Sn+1 直到序列中没有可比的数为止,"最大值"就是序列的最大值。
算法2
S1 先假定序列中的第一个数为"最大值"。
S2 将序列中的下一个整数值与"最大值"比较,如果 大于"最大值",这时就假定这个数为"最大值"。
S3 如果序列中还有其它整数,重复S2。
S4 直到序列中没有可比的数为止,这时假定的"最 大值"就是序列的最大值。
例3举例:写出一个求整数a、b、c最大值的算法
解:S1 max=a。
S2 如果b>max,则max=b。
S3 如果c>max,则max=c。
S4 max就是a、b、c的最大值。
三、知识小结: