算法基础介绍
2023-12-26 22:44:45
一.引入.
假如我们现在要算1+2+3+……+100;如果你不知道高斯求和公式,你可能会写出下面的代码:
#include <stdio.h>
int main()
{
int sum = 0;
for (int i = 1; i <= 100; i++)
{
sum += i;
}
return 0;
}
如果你知道高斯求和公式,你就会直接写出下面的代码:
#include <stdio.h>
int main()
{
int sum = (1 + 100) * 50;
return 0;
}
这就是算法的便捷!
二.算法的定义
现在我问你,什么是算法呢?
现在我们给出算法的定义:
算法是解决特定问题求解步骤的描述,在计算几中表现为指令的有限序列,并且每个指令表示一个或多个操作。
三.算法的特性
算法大体分为以下五个特性:
输入,输出,可行性,确定性,有穷性
输入输出:
这个好理解,算法肯定要进行零个或多个输入,一个或多个输出,不然要算法干哈呢,对吧!
有穷性:
定义:是指算法在执行有限的步骤之后,自动结束而不会无限循环,并且每个步骤在可接受时间内完成。
确定性:
算法执行过程中不会出现二义性
可行性:
定义:
算法的每一步都是可行的,也就是说执行有限次完成。
四.算法设计的要求.
设计一个算法应该具备以下的特性:
正确性,可读性,健壮性和时间效率高空间储存低
我们这里只讲下健壮性和时间效率高空间储存低
健壮性定义:
当输入数据不合法时,设计的算法也能进行相应的处理,而不是出现异常结果。
时间效率高空间储存低:
即时间复杂度小,空间复杂度也小。
五.算法效率的度量方法
我们有两种方法进行检查:
事后统计方法和事前分析估算法
事后统计方法:
定义:这种方法通常是通过设计好的程序和数据进行检查,对不同的运行时间进行比较,从而确定算法的效率高低。
缺点:如果花费大量时间成本却得到一个完全不满意的结果,这就是一个非常大的消耗。
所以我们有了事前分析估算法:
定义:在计算机程序编制前,依据统计方法对算法进行评估。
即是时间复杂度与空间复杂度相关的知识,这里我之前已经写过了,就不再讲了,不会的可以点开链接:
最后,感谢大家的支持,我们一起进步吧!冲峰。
文章来源:https://blog.csdn.net/2301_79813267/article/details/135231184
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!