归本理子太置 SHANDONG UNIVERSITY OF TECHNOLOOY 华会华品冷的条分空容微分会的品格 从更广义的角度来看,并不是只有“计算” 的问 题才有算法,日常生活中处处都有如乐谱是乐队演 奏的算法,菜谱是做菜肴的算法,珠算口诀是使用算 盘的算法。 人们的生产活动和日常生活离不开算法,都在 自觉不自觉地使用算法,例如人们到商店购买物品, 会首先确定购买哪些物品,准备好所需的钱,然后 确定到哪些商场选购、怎样去商场、行走的路线, 若物品的质量好如何处理,对物品不满意又怎样处 理,购买物品后做什么等。以上购物的算法是用自 然语言描述的,也可以用其他描述方法描述该算法。 11
11 从更广义的角度来看,并不是只有“计算”的问 题才有算法,日常生活中处处都有.如乐谱是乐队演 奏的算法,菜谱是做菜肴的算法,珠算口诀是使用算 盘的算法. 人们的生产活动和日常生活离不开算法,都在 自觉不自觉地使用算法,例如人们到商店购买物品, 会首先确定购买哪些物品,准备好所需的钱,然后 确定到哪些商场选购、怎样去商场、行走的路线, 若物品的质量好如何处理,对物品不满意又怎样处 理,购买物品后做什么等。以上购物的算法是用自 然语言描述的,也可以用其他描述方法描述该算法
归东理子太程 算法的特性 SHANDONG UNIVERSITY OF TECINOLOGY 华红资众空是空安会器哈品条 ●算法是若干指令的有穷序列,满足性质: ■输入:有1个或多个满足给定约束条件的量作为算法的输入。 ■输出:算法产生至少一个量作为输出。 ■确定性:组成算法的每条指令是清晰,无歧义的。 ■有限性:算法中每条指令的执行次数是有限的,执行每条指令 的时间也是有限的。 ●算法要求其执行时间是有限的(终止性 。 ●程序的执行时间可能是无限的。(例操作系统,只 要整个系统不遭破坏,它将永远不会停止,即使 没有作业需要处理,它仍处于动态等待中。因此, 操作系统不是一个算法。) 12
12 算法的特性 ⚫ 算法是若干指令的有穷序列,满足性质: ◼ 输入: 有1个或多个满足给定约束条件的量作为算法的输入。 ◼ 输出: 算法产生至少一个量作为输出。 ◼ 确定性:组成算法的每条指令是清晰,无歧义的。 ◼ 有限性:算法中每条指令的执行次数是有限的,执行每条指令 的时间也是有限的。 ⚫ 算法要求其执行时间是有限的 (终止性) 。 ⚫ 程序的执行时间可能是无限的。(例操作系统,只 要整个系统不遭破坏,它将永远不会停止,即使 没有作业需要处理,它仍处于动态等待中。因此, 操作系统不是一个算法。 )
以累加10个1的算法为例 山东程子太军 不正确的算法 (无结束) SHANDONG UNIVERSITY OF TECHNOLOOY 第一步开始 空是条 第二步NO 第三步N=N+1 第四步转第三步 第五步结束 不正确的算法指令不清晰) 第一步开始 第二步N=-0 第三步N=N+1 第四步根据N值转第三步或第五步 第五步结束 正确的算法第一步开始 第二步N=O 第三步N=N+1 第四步N>9转第五步否则转第三步 第五步结束
13 以累加10个1的算法为例 不正确的算法 (无结束) 第一步 开始 第二步 N=0 第三步 N=N+1 第四步 转第三步 第五步 结束 不正确的算法 (指令不清晰) 第一步 开始 第二步 N=0 第三步 N=N+1 第四步 根据N值 转第三步或第五步 第五步 结束 正确的算法 第一步 开始 第二步 N=0 第三步 N=N+1 第四步 N>9 转第五步否则转第三步 第五步 结束
归东理子太军程 算法与程序的区别与联系 SHANDONG UNIVERSITY OF TECHNOLOGY ●().一个程序不一定满足有穷性。例操作系 统,只要整个系统不遭破坏,它将永远不 会停止,即使没有作业需要处理,它仍处 于动态等待中。因此,操作系统不是一个 算法。 ●(2)程序中的指令必须是机器可执行的,而 算法中的指令则无此限制。 ●(③).算法代表了对问题的解,而程序则是算 法在计算机上的特定的实现。一个算法若 用程序设计语言来描述,则它就是一个程 序. 15
15 算法与程序的区别与联系 ⚫(1).一个程序不一定满足有穷性。例操作系 统,只要整个系统不遭破坏,它将永远不 会停止,即使没有作业需要处理,它仍处 于动态等待中。因此,操作系统不是一个 算法。 ⚫(2).程序中的指令必须是机器可执行的,而 算法中的指令则无此限制。 ⚫ (3).算法代表了对问题的解,而程序则是算 法在计算机上的特定的实现。一个算法若 用程序设计语言来描述,则它就是一个程 序
归本程子末军 SHANDONG UNIVERSITY OF TECINOLOGY 作泾空是容8深是条 ●算法丰程序 ●算法描述:自然语言,流程图,程序设计 语言,伪代码 ●用各种算法描述方法所描述的同一算法, 该算法的功用是一样的,允许在算法的描述 和实现方法上有所不同。 ●本书中采用类C++伪代码语言描述算法 6
16 ⚫算法≠程序 ⚫算法描述:自然语言,流程图,程序设计 语言,伪代码 ⚫用各种算法描述方法所描述的同一算法, 该算法的功用是一样的,允许在算法的描述 和实现方法上有所不同。 ⚫本书中采用类C++伪代码语言描述算法