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

【算法设计与分析】算法时间复杂度计算方法、算法时间复杂度的表示方法

1、算法的复杂性分析

算法复杂性是算法运行所需的计算机资源量。

需要的时间资源的量称为时间复杂性,T=T(N,I).

需要的空间资源的量称为空间复杂性,S=S(N,I).

N代表问题的规模,I代表输入(实例)。

时间复杂性是输入为I时的跟规模n相关的算法运行时间增长率。

空间复杂性是输入为I时的跟规模n相关的算法辅助空间增长率。

时间复杂性不是一个时间概念,而是一个时间增长率的概念,空间复杂性同理。

算法复杂性分析的意义:

(1)判断算法的能行性。即:判断算法可行不可行。

(2)比较算法的优劣。

2、时间复杂性分析方法

最坏情况下的时间复杂性即:在所有实例中,找花费时间最长的示例,以它的时间为准作为最坏情况下它的时间复杂性。

最好情况下的时间复杂性即:在所有实例中,找花费时间最少的示例,以它的时间为准作为最好情况下它的时间复杂性。

平均情况下的时间复杂性即:每个示例花费的时间和它这个示例发生的概率乘积的和。

一般情况下,我们讨论算法在最坏的情况下的时间复杂性。最好情况下的时间复杂性是在特例下发生的,意义不大。

如果能保证在最坏情况下的时间复杂性是理想的,算法是能行的,对于问题的解决才有意义。

算法时间复杂性分析分为两类:

(1)非递归算法的时间复杂性分析。

(2)递归算法的时间复杂性分析。

这两种类型的分析方法有所不同。

相关文章:

  • 基于PySide6与CATIA Automation的批量截图处理系统开发实践
  • KVM安全模块生产环境配置与优化指南
  • docker composeyaml文件,什么是swap-space,内存不足硬盘来凑,--ipc=host,yaml文件、环境变量、容器报警健康检查
  • 394. 字符串解码
  • 【蓝桥杯】省赛:神奇闹钟
  • Pyecharts 输出到 html 白屏 | 解决方案来
  • 用tiptap搭建仿google-docs工具栏
  • C++和C的区别
  • CTA重建:脑血管重建,CT三维重建,三维建模 技术,实现
  • 华为重拳出击!华为重拳出击!华为重拳出击!
  • 【Java】Devops、CI/CD、jenkins
  • Linux系统之美:进程初识
  • C语言每日一练——day_8
  • Qt常用控件之网格布局QGridLayout
  • 2025-03-15 学习记录--C/C++-C语言 char* price; 和 char price;的区别
  • 背诵--1
  • 【NLP】7. 自然语言处理 (NLP) 的关键要素
  • 零基础上手Python数据分析 (2):Python核心语法快速入门
  • golang从入门到做牛马:第二十篇-Go语言接口:行为的“契约”
  • 深入探究 HTML 框架:多页面同窗口显示的奥秘
  • 刘国中:持续加强护士队伍建设,更好保障人民身体健康
  • 应急部:正在积极推动各地逐步科学建设改造应急避难场所
  • 在地球另一端的交流,架起2万公里间更多共赢的桥梁
  • 十三届全国政协经济委员会副主任张效廉被决定逮捕
  • 射箭世界杯上海站摘得两银,中国队新周期冲击韩国缩小差距
  • 75万采购防火墙实为299元路由器?重庆三峡学院发布终止公告:出现违法违规行为