算法的效率
影响因素
- 算法采用的策略和方案
- 编译产生的代码质量
- 问题的输入规模
- 机器执行指令的速度
算法时间复杂度 T(N)
**T(N) = O(f(n))**
表示随着问题规模 n 的增大, 算法执行时间的增长率和 f(n) 的增长率相同,
称作算法的渐进时间复杂度, 简称时间复杂度
一般来讲, 随着输入规模 n 的增大, T(n) 增长最慢的算法为最优时间算法
推导攻略:
- 用常数 1 取代运行时间中的所有加法常数
- 在修改后的运行次数函数中, 只保留最高阶项
- 如果最高阶项存在且不是 1, 则去除与这个项相乘的常数
常见时间复杂度比较: O(1) < O(logn) < O(n) < O(nlogn) < O(n^2) < O(n^3) < O(2^n) < O(n!) < O(n^n)
算法的空间复杂度 S(n)
S(n) = O(f(n))
n 为问题的规模, f(n) 为语句关于 n 所占存储空间的函数
通常 “时间复杂度” 用来来指运行时间的需求;
“空间复杂度” 用来指空间需求
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端