本节学习目标:会一些基本的算法就OK!
一个程序应包括:对数据的描述。在程序中要指定数据的类型和数据的组织形式,即数据结构。 对操作的描述。即操作步骤,也就是算法。
程序 = 数据结构 算法 计算机语言
由上面的公式可以看出,程序设计中数据结构和算法是最重要的,是编程的灵魂。
数据结构是算法实现的基础,算法总是要依赖于某种数据结构来实现的。往往是在发展一种算法的时候,构建了适合于这种算法的数据结构。一种数据结构如果脱离了算法,也就没有存在的价值了。
通过这个公式可以看出:学好数据结构和算法比学计算机语言更重要~!
一、算法的概念
做任何事情都有一定的步骤。为解决一个问题而采取的方法和步骤,就称为算法。
计算机算法:计算机能够执行的算法。
计算机算法可分为两大类:数值运算算法、非数值运算算法。
二、算法的作用
解决任何一个实际问题,都不可避免地涉及到算法的问题,例如存钱问题,再如节假日公司值班人员的排班等,都需要通过一定的算法,得到一个最优(或较优)的方案。
实例:看商品猜价格(二分法猜)
首先出示一件价格在999元以内的商品,参与者要猜出这件商品的价格。在猜价格的过程中,主持人会根据参与者给出的价格,相应地给出“高了”或“低了”的提示。
用二分法猜7次就猜出来了,若乱猜可能要900多次。。。
三、简单算法举例
求1×2×3×4×5。
最原始方法:
步骤 1:先求 1×2,得到结果 2。
步骤 2:将步骤 1 得到的乘积 2 乘以3,得到结果 6。
步骤 3:将6再乘以 4,得 24。
步骤 4:将24 再乘以5,得 120。
这样的算法虽然正确,但太繁。
改进的算法:
S1: 使t=1
S2: 使i=2
S3: 使t×i, 乘积仍然放在在变量 t 中,可表示为 t×i→t
S4: 使i 的值 1,即 i 1→i
S5: 如果i≤5, 返回重新执行步骤 S3以及其后的 S4 和 S5;否则,算法结束。
如果计算 100!只需将 S5:若 i≤5 改成 i≤100 即可。
四、用GML表示算法
用计算机语言表示算法必须严格遵循所用语言的语法规则。
求 1×2×3×4×5
create:
t=1;
i=2;
while(i<=5)
{
t*=i; //t=t*i;
i =1; //i=i 1;
}
show_message(t)
方法2:
Create:
sum = 1
for(i=1;i<6;i )
{
sum = sum * i;
}
show_message(t)
五、算法的特性
有穷性:一个算法应包含有限的操作步骤而不能是无限的。
确定性:算法中每一个步骤应当是确定的,而不能应当是含糊的、模棱两可的。
有零个或多个输入。
有一个或多个输出。
有效性:算法中每一个步骤应当能有效地执行,并得到确定的结果。
对于程序设计人员,必须会设计算法,并根据算法写出程序。
Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved