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

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

相关推荐
charlie11451419112 分钟前
现代C++工程实践:简单的IniParser3——改进我们的split
开发语言·c++·笔记·学习
灰灰勇闯IT38 分钟前
【探索实战】Kurator多集群统一应用分发实战:从环境搭建到业务落地全流程
算法
鱼在树上飞1 小时前
乘积最大子数组
算法
H_z___1 小时前
Codeforces Round 1070 (Div. 2) A~D F
数据结构·算法
自学小白菜1 小时前
每周刷题 - 第三周 - 双指针专题 - 02
python·算法·leetcode
思成不止于此2 小时前
【MySQL 零基础入门】MySQL 函数精讲(二):日期函数与流程控制函数篇
android·数据库·笔记·sql·学习·mysql
杜子不疼.2 小时前
【LeetCode76_滑动窗口】最小覆盖子串问题
算法·哈希算法
ComputerInBook2 小时前
代数基本概念理解——特征向量和特征值
人工智能·算法·机器学习·线性变换·特征值·特征向量
中屹指纹浏览器2 小时前
2025技术干货:国内静态 IP 搭配指纹浏览器的加密绑定与跨区域优化方案
经验分享·笔记
不能只会打代码2 小时前
力扣--3433. 统计用户被提及情况
java·算法·leetcode·力扣