当前位置: 首页 > news >正文

leetcode算法笔记-算法复杂度

对于时间复杂度,主要包括三种情况:

\theta渐进紧确界:

O渐进上界:

\Omega渐进下界:

加法原则:不同的时间复杂度相加取阶数最高的

乘法原则:不同的时间复杂度相乘,结果为时间复杂度的乘积 

阶乘时间复杂度一般出现在全排列和旅行商问题中,而对数时间复杂度一般出现在分治算法中。

对于平均时间复杂度举例

def find(nums, val):pos = -1for i in range(n):if nums[i] == val:pos = ibreakreturn pos

在这个代码中,最好时间复杂度为O(1),最坏时间复杂度为O(n)。这样时间复杂度就不唯一,所以此时我们需要计算平均时间复杂度。对于这个算法总共有n+1种情况,即在n个位置上找到指定元素和最终没有找到指定元素。对其求平均即可得\frac{1+2+\cdots +n+n}{n+1}=\frac{n(n+3)}{2(n+1)},所以平均时间复杂度就为O(n)。

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

http://www.lryc.cn/news/346751.html

相关文章:

  • 推荐算法详解
  • Java找不到包解决方案
  • vue的css深度选择器 deep /deep/
  • 2024年华为OD机试真题-计算三叉搜索树的高度-(C++)-OD统一考试(C卷D卷)
  • # ERROR: node with name “rabbit“ already running on “MS-ITALIJUXHAMJ“ 解决方案
  • class常量池、运行时常量池和字符串常量池详解
  • Meilisearch使用过程趟过的坑
  • 全面升级企业网络安全 迈入SASE新时代
  • 2024.1IDEA 到2026年
  • uniapp——点赞、取消点赞
  • react经验15:拖拽排序组件dnd-kit的使用经验
  • Webpack模块联邦:微前端架构的新选择
  • CMake 学习笔记(访问Python)
  • 【ruoyi】docker部署 captchaImage接口 FontConfiguration空指针异常
  • P1443 马的遍历
  • AI学习指南概率论篇-贝叶斯推断
  • 大数据测试
  • 金融业开源软件应用 管理指南
  • SolidWorks 齿轮配合
  • 鸿蒙开发-ArkTS语言-XML
  • 网安面经之文件上传漏洞
  • 如何使用 WavLM音频合成模型
  • 学习java第六十七天
  • Linux(Ubuntu24.04) 安装 MinIO
  • 视频汇聚边缘网关EasyCVR硬件设备无法访问域名,解析失败该如何处理?
  • 差速机器人模型LQR 控制仿真(c++ opencv显示)
  • 探索设计模式的魅力:权力集中,效率提升,中心化模式的优势与挑战
  • uniapp0基础编写安卓原生插件之编写安卓页面在uniapp上显示(摄像头调用)
  • fastapi数据库连接池的模版
  • 如何批量将十六进制数据转成bin文件