leetcode算法笔记-算法复杂度

对于时间复杂度,主要包括三种情况:

渐进紧确界:

O渐进上界:

渐进下界:

加法原则:不同的时间复杂度相加取阶数最高的

乘法原则:不同的时间复杂度相乘,结果为时间复杂度的乘积

阶乘时间复杂度一般出现在全排列和旅行商问题中,而对数时间复杂度一般出现在分治算法中。

对于平均时间复杂度举例

python 复制代码
def find(nums, val):
    pos = -1
    for i in range(n):
        if nums[i] == val:
            pos = i
            break
    return pos

在这个代码中,最好时间复杂度为O(1),最坏时间复杂度为O(n)。这样时间复杂度就不唯一,所以此时我们需要计算平均时间复杂度。对于这个算法总共有n+1种情况,即在n个位置上找到指定元素和最终没有找到指定元素。对其求平均即可得,所以平均时间复杂度就为O(n)。

空间时间复杂度的计算就较为简单,主要包括局部变量所占用的存储空间和进行递归时所使用的堆栈空间。 一般将算法的辅助空间作为评判算法空间复杂度大小的标准。

相关推荐
LYFlied2 分钟前
Vue3虚拟DOM更新机制源码深度解析
前端·算法·面试·vue·源码解读
薛不痒9 分钟前
机器学习算法之集成学习随机森林和贝叶斯
算法·机器学习·集成学习
竹一阁12 分钟前
跟踪导论(十二)——卡尔曼滤波的启动:初始参数的设置
算法·信号处理·雷达·信号与系统
QT 小鲜肉14 分钟前
【Linux命令大全】001.文件管理之find命令(实操篇)
linux·运维·前端·chrome·笔记
youngee1114 分钟前
hot100-48课程表
算法
kesifan19 分钟前
数据结构线性表
数据结构·算法
leo__52028 分钟前
如何计算一个二维地质模型的表面重力值和重力异常
算法
浪子不回头41536 分钟前
推理建模学习笔记
笔记·学习
代码游侠39 分钟前
应用——基于Linux的音乐播放器项目
linux·运维·笔记·学习·算法