算法0.什么是算法
2021/10/19 17:09:32
本文主要是介绍算法0.什么是算法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
一、基本概念
算法(Algorithm)是指一个解决问题的准确而完整的过程,包含一系列解决问题的清晰指令。
例如把大象放进冰箱需要几步,答案是3步:
- 打开冰箱门;
- 把大象塞进去;
- 关上冰箱门。
这三步准确并且完整的描述了解决这个问题的指令,所以从大的角度看,我们的日常生活中充满了算法,如何做一顿饭、如何冲一杯咖啡等等。但是这样去讨论算法就有点广泛了,很多现实问题是拥有近乎无穷变量的混沌系统,我们很难给出一个解决问题的方案。
扯远了,我准备讲的是计算机中算法。
在计算机中,算法就是解决一个问题的计算过程,该过程通过输入,然后通过算法获取一个正确的输出。按照这个思路,算法就是把输入转换为输出的计算步骤。
例如对一个数组进行排序
二、算法解决了什么问题
- 识别人类DNA中10万个基因
- 互联网中的网页快速访问与信息检索
- 电子商务中的核心技术,公钥密码与数字签名
- 如何按最有效的方式分配稀有资源
- 如何确定地图中某一点到另一点的最短道路
- 求两个序列的最长公共子序列
- 寻找n个点的凸包
上述只是无穷无尽的问题中的微不足道的一部分,但已经向我们展示出了算法的应用。同样,对于一个复杂问题,寻找一个真正的解或一个最优解是一个很大的挑战。
三、如何评价一个算法
如果计算机的计算速度无限快、储存空间无限大且免费,那么研究算法毫无意义,我们只需要关注如何才能正确获得问题的结果就行了。
可惜计算机计算速度很快,但是不是无限快;存储空间是廉价的,但不免费。
所以对于一个算法,时间和空间都是有限的资源,我们需要合理运用这两种资源来解决问题。
因此对于算法的评价引入了时间复杂度和空间复杂度。
1 时间复杂度
算法的时间复杂度是指执行算法所需要的计算工作量。一般来说,计算机算法是问题规模 n 的函数 f(n) ,算法的时间复杂度也因此记做:
T ( n ) = O ( f ( n ) ) T(n) = O(f(n)) T(n)=O(f(n))
从想当然的角度和理论的角度看,算法规模越大,所需要的时间就越久,增长的速率则与 f(n) 正相关。
当然时间复杂度还分好几种,如最坏情况下、最好情况下、平均情况下这几种,这些都需要根据具体问题进行具体分析。
2 空间复杂度
算法的空间复杂度的衡量就简单的多,是指算法需要消耗的内存空间。
除了时间和空间复杂度外,还有几项评价算法的指标。
3 正确性
毫无疑问,这是废话!
4 可读性
算法是人设计和使用的,所以得关照一下使用者ㄟ( ▔, ▔ )ㄏ,或者防止过段时间连自己都看不懂。
5 鲁棒性
这个词是英文单词 robustness 英译过来的, 用中文来理解的话大概是稳定性的意思吧,指一个算法对不合理数据输入的反应能力和处理能力,也称为容错性。
四、结语
以上就是关于算法的基本介绍、下一节开始将从排序算法开始进入算法的世界。
这篇关于算法0.什么是算法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南