一.复杂度的概念
算法编写成可执行程序后,需要耗费时间空间资源,衡量一个算法的好坏是从时间和空间两个维度衡量。
时间复杂度衡量一个算法的运行快慢,而空间复杂度主要衡量一个算法运行所需要的额外空间。
二.时间复杂度
算法的时间复杂度是一个函数T(N),他定义了该算法运行的时间,时间复杂度是一个衡量程序的时间效率,那为什么不去计算程序的运行时间呢?
由于不同的编译环境和运行机器的配置不同,同一个算法程序在不同的机器下运行时间都不同。
三.大O渐进法
大O符号适用于描述函数渐进行为的数学符号
推导大O阶的规则
1.函数式T(N)中只保留最高阶项去掉低阶项,因为当N不断变大,低阶项的影响越来越小,则可以忽略。
2.如果最高阶项存在且不是1,则去除常数系数。
3.如果T(N)中没有相关项目,则用常数1取代。
四.空间复杂度
空间复杂度也是一个数学表达式,是对一个算法运行过程中需要额外临时开辟的空间,因为常规情况下每个对象大小不一样,所以我们只需要计算变量个数。
标签:复杂度,衡量,算法,时间,空间,运行 From: https://blog.csdn.net/2401_86449430/article/details/142903047