从零到壹深入解析算法——算法概述
欢迎查看E·udemon在线博客
你好! 从零到壹深入解析算法系列博客,是以计算机算法设计与分析为基础,针对算法概念与例题编程实践理解稍有疑惑的朋友,此博客将会详细地讲解概念与代码的含义。
一、算法与程序
1.1算法
算法是由若干条指令组成的又穷序列,是解决问题的一种通用模型或基本方法。并且满足以下五条性质:
- 输入:有零个或者多个输入,零个指算法自身定义的初始条件,多个指由外部提供的量
- 输出:至少有一个量作为输出,否则算法是没有意义的
- 确定性:要求算法指令清晰,没有歧义
- 有穷性:每条指令执行的次数有限,执行每条算法的时间有限。
1.2程序
程序就是算法使用某种程序设计语言(C,C++,Java,Python…)的具体实现
可以不满足算法的性质4,可以无限循环执行程序。例如,while(true)。
二、算法复杂性分析
2.1算法复杂性
在能解决问题的前提下,通常以算法的时间复杂性与空间复杂性来衡量算法的优劣
时间复杂性:
算法的时间复杂性是一个函数,描述了算法需要的时间资源。量级,只关注算法复杂度的最高项。一般考虑三种情况下的时间复杂性: 最坏情况、最好情况、平均情况。