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

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

相关推荐
航Hang*7 分钟前
第三章:网络系统建设与运维(中级)——交换技术
运维·笔记·计算机网络·华为·ensp·交换机
历程里程碑11 分钟前
LeetCode 560题:和为K子数组最优解
算法·哈希算法·散列表
航Hang*19 分钟前
第一章:网络系统建设与运维(高级)—— 多区域OSPF路由协议
运维·服务器·网络·笔记·智能路由器·ensp
qq_4017004126 分钟前
C/C++中的signed char和unsigned char详解
c语言·c++·算法
弘毅 失败的 mian34 分钟前
Git 多人协作
经验分享·笔记·git
BlackWolfSky35 分钟前
React中文网课程笔记2—实战教程之井字棋游戏
笔记·react.js·游戏
BlackWolfSky37 分钟前
React中文网课程笔记1—快速入门
前端·笔记·react.js
leoufung39 分钟前
LeetCode 67. Add Binary:从面试思路到代码细节
算法·leetcode·面试
chushiyunen42 分钟前
发票合并拆分笔记
笔记
航Hang*43 分钟前
第二章:网络系统建设与运维(高级)—— IS-IS路由协议
运维·服务器·网络·笔记·智能路由器·ensp