1、算法的概念与特征 例1 渡河问题 一个农夫带着一条狼 一只山羊和一篮蔬菜过河 但只有一条小船 并且每次只能让农夫带一样东西过河 农夫在场的情况下一切相安无事 一旦农夫不在 狼会吃羊 羊会吃蔬菜 问聪明的农夫如何解决过河问题 方法 1 农夫带羊过河 然后农夫返回2 农夫带狼过河 然后农夫带羊返回3 农夫带蔬菜过河 然后农夫返回4 农夫带羊过河 算法的主要特征 有穷性 一个算法必须保证执行有限步骤之后结束 确切性 算法的每一步骤必须有确切的含义 能行性 算法的每一步骤都能有效地执行 并得到确定的结果 输入 一个算法有0个或多个输入 输出 一个算法有一个或多个输出 没有输出的算法是毫无意义的 算法
2、为解决某一问题而设计的确定的有限的步骤 算法的描述方法 例2 用自然语言描述 从键盘输入两数 求两数之和并输出 方法 1 输入第一个加数2 输入第二个加数3 计算两个加数的和4 输出和 算法的描述方法用自然语言表达 用流程图表达 用程序表达 算法的描述方法 流程图最常用的符号 起止框 输入输出框 处理框 判断框 流程线和连接圈 1 输入第一个加数2 输入第二个加数3 计算两个加数的和4 输出和 算法的描述方法 例5 已知圆半径 求面积 请使用自然语言和流程图两种方式描述算法求解该问题的算法 试一试 U2合唱团在17分钟内得赶到演唱会场 途中必须跨过一座桥 4个人从桥的同一端出发 我们得帮助他们到达另一端 天色很暗 而他们只有一只手电筒 一次同时最多可以有两人一起过桥 而过桥的时候必须持有手电筒 所以就得有人把手电筒带来带去 来回桥两端 手电筒是不能用丢的方式来传递的 4个人的步行速度各不同 若两人同行则以较慢者的速度为准 Bono需花1分钟过桥 Edge需花2分钟过桥 Adam需花5分钟过桥 Larry需花10分钟过桥 他们要如何在17分钟内过桥呢