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

数据结构与算法——Java实现 2.衡量算法好坏的标准

一个洞穴是黑暗的,但是只要有光打了进去,黑暗就不再是他的宿命

                                                                                                —— 24.8.27

一、时间复杂度

时间复杂度是用来衡量:一个算法的执行,随数据规模增大,而增长的时间成本

时间复杂度不依赖于环境因素

如何表示时间复杂度呢?

假设算法要处理的数据规模是n,代码总的执行行数用函数 f(n)来表示

为了对 f(n)进行化简,应当抓住主要矛盾,找到一个变化趋势与之相近的表示法

二、大O表示法

已知 f(n) ,求 g(n)

① 表达式中相乘的常量,可以省略

② 多项式中数量规模更小(低次项)的表达式

③ 不同底数的对数,渐进上界可以用一个对数函数 log n 表示

④ 类似的,对数的常数次幂可省略

时间复杂度由低到高:

O(1) < O(log(n)) < O(n) < O(n*log(n)) < O(n^2) < O(2^n) < O(n!)

三、空间复杂度

与时间复杂度类似,一般也使用大O表示法来衡量:一个算法执行随数据规模增大,而增长的额外空间成本


http://www.mrgr.cn/news/12435.html

相关文章:

  • ETAS工具链自动化实战指南<二>
  • 【STM32 Blue Pill编程】-UART数据接收与发送(轮询模式)
  • Centos 设置成中国时区
  • GitHub 与 AWS CodeCommit
  • 【MATLAB源码-第198期】基于simulink的三相光伏并网仿真模拟。
  • 美国高防服务器运行《黑神话:悟空》配置需求及优化方法
  • AI辅助编码在主流IDE中的智能代码补全说明
  • 前端接口请求与后端交互详解 联调后端取不到值 自己的一点记录写的比较随意 会比较乱但都是干货
  • Excel打开密码的两种设置方法!
  • 【论文阅读】KAN: Kolmogorov–Arnold Networks(2024)
  • 从工程师视角看 “Multi-Agent as a Service (MAaaS)”
  • window 安装 anaconda教程(含安装包)
  • 创建一个用于修改本地DNS解析记录的Windows客户端
  • 【UE5.1】NPC人工智能——07 NPC在巡逻过程中休息
  • 软件测试——自动化测试selenium
  • 华为S3700交换机配置VLAN的方法​
  • SpringBoot集成kafka-自定义拦截器(可以在拦截器中做记录日志、安全检查等操作)
  • 基于云原生的一体化监控系统Day1
  • python从列表元素中查找最小的元组坐标
  • 基差、升水与贴水,股指期货市场的重要概念解析