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

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

相关推荐
Jerry14 小时前
LeetCode 1047. 删除字符串中的所有相邻重复项
算法
可编程芯片开发17 小时前
基于霍尔传感器和PID控制器的有功功率检测控制系统simulink建模与仿真
算法
To_OC17 小时前
LC 17 电话号码的字母组合:我的回溯算法,就是从这道题开窍的
javascript·算法·leetcode
战族狼魂19 小时前
GPT-5.6与Grok 4.5重磅发布
人工智能·算法·大模型·大语言模型
疯狂打码的少年20 小时前
【软件工程】软件开发模型:增量模型与迭代模型
笔记·软件工程
白日焰火120 小时前
基于 OpenSpec 实现规范驱动开发
算法·交互
Generalzy20 小时前
从本地 Demo 到生产级检索:Milvus 学习笔记(3)
笔记·学习·milvus
imuliuliang20 小时前
关于图搜索算法的性能建模与可预测性研究7
算法
ForDreamMusk21 小时前
批量归一化
人工智能·算法·机器学习
Ivanqhz1 天前
刚体的自由度
人工智能·算法