
算法的时间复杂度和空间复杂度
赋值语句:通常为O(1),但若赋值语句右侧涉及函数调用,需考虑函数执行时间。 顺序语句:运行时间取决于耗时最长的语句。 条件语句:if语句的时间复杂度为条件测试时间加上分支语句的时间;if-else-if语句的时间复杂度为条件测试时间加上最耗时的分支语句。 循环语句:运行时间为n次循环体执行时间之和。
输入数据:仅与问题规模有关,与算法无关。 算法本身:通常为常数。 辅助变量:若需存储空间随输入规模增长为常数,则算法为原地工作;否则,空间复杂度为输入规模的某个函数。
发布日期:2021-05-07 20:56:36
浏览次数:15
分类:精选文章
本文共 735 字,大约阅读时间需要 2 分钟。
一、时间复杂度
时间复杂度是衡量算法运行效率的重要指标。它反映了算法在处理问题时所需的运算量随问题规模变化的趋势。通常,问题规模用整数n表示,算法的时间复杂度可用函数f(n)表示为T(n)=O(f(n)),其中O表示渐近时间复杂度符号。
定义与概念
渐近时间复杂度的定义:如果存在两个正常数c和n0,使得对于所有n≥n0,f(n)≤c·g(n),则f(n)=O(g(n))。这意味着随着问题规模n的增大,f(n)的增长率与g(n)一致。
时间复杂度的计算方法
常见渐进时间复杂度的对比:O(1) < O(log2n) < O(n) < O(nlogn) < O(n²) < O(n³) < O(2^n)
二、空间复杂度
空间复杂度衡量算法运行过程中所占用的存储空间。它包括输入数据占用的空间、算法本身占用的空间以及辅助变量占用的空间。
定义与概念
算法的空间复杂度S(n)表示执行过程中所需存储空间的大小。与时间复杂度类似,若S(n)=O(g(n)),则表示随着问题规模n的增大,存储空间的增长率与g(n)一致。
空间复杂度的计算方法
通过分析输入数据和辅助变量的存储需求,可以评估算法的空间效率。
发表评论
最新留言
关注你微信了!
[***.104.42.241]2025年04月15日 23时13分24秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
2.1.4奇偶校验码
2019-03-06
2.2.2原码补码移码的作用
2019-03-06
多线程之Lock显示锁
2019-03-06
ForkJoinPool线程池
2019-03-06
【Struts】配置Struts所需类库详细解析
2019-03-06
Java面试题:Servlet是线程安全的吗?
2019-03-06
DUBBO高级配置:多注册中心配置
2019-03-06
Java集合总结系列2:Collection接口
2019-03-06
Linux学习总结(九)—— CentOS常用软件安装:中文输入法、Chrome
2019-03-06
大白话说Java反射:入门、使用、原理
2019-03-06
集合系列 Set(八):TreeSet
2019-03-06
JVM基础系列第11讲:JVM参数之堆栈空间配置
2019-03-06
MySQL用户管理:添加用户、授权、删除用户
2019-03-06
比技术还重要的事
2019-03-06
linux线程调度策略
2019-03-06
软中断和实时性
2019-03-06
Linux探测工具BCC(可观测性)
2019-03-06
Opentelemetry Metrics SDK
2019-03-06
流量控制--2.传统的流量控制元素
2019-03-06
SNMP介绍及使用,超有用,建议收藏!
2019-03-06