算法初体验
①小学学过珠算的鱼油应该很有印象,每天加法运算敲得手指都快断了就算那1+2+...+99+100。
可以运用等差求和公式
Sn=na1+n(n-1)d
等差d=1时
Sn=(a1+an)n/2
1.正常情况使用c语言计算1-100求和
#include <stdio.h>
int main()
{
int sum=0;
for (int i = 1; i <= 100; i++)
{
sum += i;
}
printf("%d", sum);
return 0;
}
运用等差数列计算1-100求和
#include <stdio.h>
int main()
{
int sum=0;
for (int i = 1; i <= 100; i++)
{
sum += i;
}
printf("%d", sum);
return 0;
}
算法具有的五个基本特征
输入
输出
有穷性
确定性
可行性
- 输入
-要求算法具有零个或者多个输入
。
-尽管对于绝大多数算法来说,输入参数都是必要的。但是有些时候,像打印"I LOVE YOU“,就不需要啥参数。
- 输出
-算法至少有一个或者多个输出
。
-算法是一定要输出的,不需要它输出,那你要这个算法干啥?输出的形式可以是打印形式输出,也可以是返回一个值或多个值。
- 确定性
-算法的每一个步骤都具有确定的含义,不会出现二义性。
-算法在一定条件下,只有一条执行路径,相同的输入只能有唯一的输出结果。
- 可行性
-算法的每一步都必须可行,也就是说,每一步都能够通过执行有限次数完成。
注意:算法并不是唯一的。同一个问题可以有多种解决问题的算法。
算法设计的要求
正确性
--算法的正确性是值算法至少应该具有输入、输出和加工处理无歧义性、能正确反映问题的需求、能够得到问题的正确答案。
--答题分为以下四个层次:
①算法程序没有语法错误。
②算法程序对于合法输入能够产生满足要求的输出。
③算法程序对于非法输入能够产生满足规格的说明。
④算法程序对于故意刁难的测速输入都有满足要求的输出结果。
可读性
--算法设计另一目的是为了便于阅读、理解和交流。
--我们写代码的目的,一方面是为了让计算机执行,但还有一个重要的目的是为了便于他人阅读和自己日后阅读修改。
健壮性
--当输入数据不合法时,算法也能做出相关处理,而不是产生异常、崩溃、活莫名其妙的结果。
算法的时空效率
(运行时间效率高和存储量低)