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)。

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

相关推荐
hweiyu00几秒前
二分图匹配算法:匈牙利算法
算法
IAR Systems4 分钟前
在IAR Embedded Workbench for Renesas RH850中实现ROPI
linux·运维·算法
一个不知名程序员www19 分钟前
算法学习入门--- set与map(C++)
c++·算法
POLITE319 分钟前
Leetcode 142.环形链表 II JavaScript (Day 10)
javascript·leetcode·链表
鸿途优学-UU教育26 分钟前
法考命题趋势解读:为何越来越重视“实战能力”?
算法·法律·uu教育·法考机构
Rui_Freely29 分钟前
Vins-Fusion之 相机—IMU在线标定(两帧间旋转估计)(十)
人工智能·算法·计算机视觉
半夏知半秋31 分钟前
rust学习-Option与Result
开发语言·笔记·后端·学习·rust
mit6.8241 小时前
二分猜答案
算法
_OP_CHEN1 小时前
【算法基础篇】(四十二)数论之欧拉函数深度精讲:从互质到数论应用
c++·算法·蓝桥杯·数论·欧拉函数·算法竞赛·acm/icpc
雍凉明月夜1 小时前
深度学习网络笔记Ⅴ(Transformer源码详解)
笔记·深度学习·transformer