算法是一个封装完备的指令序列,用于执行特定的功能。
换句话说,算法就是由人或机器可重复的解决问题的方法。计算机科学家们使用算法的复杂度(又称大 O 表示法)来表示算法的效率。
例如:
1.一道菜谱就是供人使用的算法。2.一种编程中常用的排序算法就是用来描述计算机如何给数据排序的。常用的算法有寻找最优路径算法,例如“旅行商问题”、“树的遍历算法”等。
还有很多机器学习算法例如“线性回归”、“逻辑回归”、“决策树”、“随机森林”、“支持向量机”、“循环神经网络(RNN)”、“长短期记忆(LSTM)神经网络”、“卷积神经网络(CNN)”、“深度卷积神经网络”等。
算法复杂度解释
时间复杂度 Time Complexity
算法的时间复杂度是指算法需要消耗的时间资源。一般来说,电脑算法是问题规模𝑛的函数𝑓(𝑛),算法的时间复杂度也因此记做 :𝑇(𝑛)=𝑂(𝑓(𝑛)) 算法执行时间的增长率与𝑓(𝑛)的增长率正相关,称作渐近时间复杂度,简称时间复杂度。常见的时间复杂度有:常数阶𝑂(1),对数阶𝑂(log𝑛),线性阶𝑂(𝑛),线性对数阶𝑂(𝑛log𝑛),平方阶𝑂(𝑛^2),立方阶𝑂(𝑛^3),…,𝑘次方阶𝑂(𝑛^𝑘),指数阶𝑂(2^𝑛)。随着问题规模𝑛的不断增大,上述时间复杂度不断增大,算法的执行效率越低。
空间复杂度 Space Complexity
算法的空间复杂度是指算法需要消耗的空间资源。其计算和表示方法与时间复杂度类似,一般都用复杂度的渐近性来表示。同时间复杂度相比,空间复杂度的分析要简单得多。