著名的面试题:人、狼、羊过河。一个人带着三只羊、三只狼过河,河边有一条小船。船上除了运载一个人外,至多再载狼或者羊中的任意两只,难点在于,当人不在场的时候,如果狼的数量大于等于羊的数量,羊就会被狼吃掉,为了安全过河,应该怎么解决呢?

解决方案:第一次,开始运送一只狼过河,空船回来。第二次,运一只狼和一只羊在过河,到对岸后,把两只狼带回来。第三次,运送两只羊过河,空船回来,最后分两次把狼全部运过河。

算法是什么

算法是为一个问题或者一类问题给出的解决方法和具体步骤,是对问题求解过程的一种准确而完整的逻辑描述。它由有限的步骤的操作序列组成,代表用系统的方法描述解决问题的策略机制。

算法是一组严谨定义运算顺序的规则。每一个规则都是有效的、明确的。在古代,算法通常用于数值计算,中国古代的筹算口诀、珠算口诀都是算法的雏形,它解决的是数值计算问题。

程序是什么

程序是为了用计算机解题或者控制某一过程而编排的一系列指令的集合,这些指令可以是计算机的机器指令,也可以是汇编语言或者高级程序设计语言。

算法和程序的区别

程序不等于算法,但是通过程序设计可以在计算机上实现算法,在实际应用中,也许只需一组程序设计语言就可以完成算法的基本要素处理,包括数据对象的运算和操作以及顺序、选择、循环结构的控制等。通过程序模块的设计,可以实现算法中的递推、递归、迭代等一系列基本的算法。

因此,在计算机解决问题的过程中,通常分成三个阶段,分析问题、设计算法、编制程序实现算法。