算法初体验

①小学学过珠算的鱼油应该很有印象,每天加法运算敲得手指都快断了就算那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“,就不需要啥参数。

  • 输出

-算法至少有一个或者多个输出

-算法是一定要输出的,不需要它输出,那你要这个算法干啥?输出的形式可以是打印形式输出,也可以是返回一个值或多个值。

  • 确定性

-算法的每一个步骤都具有确定的含义,不会出现二义性。

-算法在一定条件下,只有一条执行路径,相同的输入只能有唯一的输出结果。

  • 可行性

-算法的每一步都必须可行,也就是说,每一步都能够通过执行有限次数完成。

注意:算法并不是唯一的。同一个问题可以有多种解决问题的算法。

算法设计的要求

  • 正确性

--算法的正确性是值算法至少应该具有输入、输出和加工处理无歧义性、能正确反映问题的需求、能够得到问题的正确答案。

--答题分为以下四个层次:

算法程序没有语法错误。

算法程序对于合法输入能够产生满足要求的输出。

算法程序对于非法输入能够产生满足规格的说明。

算法程序对于故意刁难的测速输入都有满足要求的输出结果。

  • 可读性

--算法设计另一目的是为了便于阅读、理解和交流。

--我们写代码的目的,一方面是为了让计算机执行,但还有一个重要的目的是为了便于他人阅读和自己日后阅读修改。

  • 健壮性

    --当输入数据不合法时,算法也能做出相关处理,而不是产生异常、崩溃、活莫名其妙的结果。

  • 算法的时空效率(运行时间效率高和存储量低)
最后修改:2022 年 03 月 03 日
如果觉得我的文章对你有用,请随意赞赏