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

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

相关推荐
无规则ai6 分钟前
动手学深度学习(pytorch版):第一章节——引言
人工智能·pytorch·深度学习·算法·机器学习
古月方源aaaaa1 小时前
ospf笔记
笔记·智能路由器
WeiJingYu.1 小时前
机器学习——随机森林
算法·随机森林·机器学习
丶小鱼丶2 小时前
二叉树算法之【中序遍历】
java·算法
快去睡觉~4 小时前
力扣238:除自身之外数组的乘积
数据结构·算法·leetcode
秋风战士4 小时前
通信算法之307:fpga之时序图绘制
笔记·fpga开发
小马爱打代码4 小时前
算法 - 贪心算法
算法·贪心算法
Virgil1394 小时前
【YOLO学习笔记】YOLOv8详解解读
笔记·学习·yolo
m0_598250005 小时前
参考平面与返回电流
笔记
岁忧5 小时前
(LeetCode 面试经典 150 题) 82. 删除排序链表中的重复元素 II (链表)
java·c++·leetcode·链表·面试·go