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

5. 算法与分析 (2)

本节主要介绍算法时间复杂度的具体求法和空间复杂度

本文部分ppt、视频截图来自:[青岛大学-王卓老师的个人空间-王卓老师个人主页-哔哩哔哩视频]

1. 算法分析

1.1 分析算法时间复杂度的基本方法

  • 定理1.1

在这里插入图片描述
忽略所有低次幂项和最高次幂系数,体现出增长率的含义

  • 计算时间复杂度步骤
  1. 找出语句频度最大的那条语句作为基本语句
  2. ☆☆☆计算基本语句的频度得到问题规模 n 的某个函数 f(n)
  3. 忽略所有低次幂项和最高次幂系数,取其数量级用符号“O”表示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.2 算法时间复杂度计算

  • 时间复杂度受输入数据集影响

有的情况下,算法中基本操作重复执行的次数还随问题的输入数据集不同而不同。

在这里插入图片描述

在这里插入图片描述

  • 时间复杂度计算规则

对于复杂的算法,可以将它的分成几个容易估算的部分,然后利用大O加法法则和乘法法则,计算算法的时间复杂度。

  • 加法规则:如果函数 T(n) 可以分解为两个函数的和,则可以分别求解这两个函数的数量级,求两个函数数量级中的最大值,就是 T(n) 的数量级。
    在这里插入图片描述
  • 乘法规则:如果函数 T(n) 可以分解为两个函数的乘积,则可以分别求解这两个函数的数量级,并求两个函数数量级的乘积,就是 T(n) 的数量级。
    在这里插入图片描述

1.3 算法时间效率的比较

当 n 取得很大时,指数时间算法和多项式时间算法在所需时间上非常悬殊,如下表所示:

在这里插入图片描述
在这里插入图片描述

时间复杂度 T(n) 按数量级递增顺序为:

在这里插入图片描述

1.4 渐进空间复杂度

  • 空间复杂度:算法所需存储空间的度量。

记作 : S(n) = O( f( n ) ),其中 n 为问题的规模

  • 算法要占用的空间
  1. 算法本身要占据的空间,输入/输出,指令,常数,变量等
  2. 算法要使用的辅助空间
  • 算法空间复杂度例子

在这里插入图片描述

1.5 设计好算法的过程

在这里插入图片描述

相关文章:

  • 企业应用AI对向量数据库选型思考
  • 【python深度学习】Day 40 训练和测试的规范写法
  • 深入解析Go语言数据类型:从底层到高级应用
  • 历年浙江大学计算机保研上机真题
  • 0-EATSA-GNN:基于图节点分类师生机制的边缘感知和两阶段注意力增强图神经网络(code)
  • 【Android】如何抓取 Android 设备的 UDP/TCP 数据包?
  • SOC-ESP32S3部分:20-SPISPI屏幕驱动
  • 【Docker管理工具】部署Docker管理面板DweebUI
  • 鲲鹏Arm+麒麟V10,国产化信创 K8s 离线部署保姆级教程
  • 鸿蒙OSUniApp页面切换动效实战:打造流畅精致的转场体验#三方框架 #Uniapp
  • InnoDB引擎逻辑存储结构及架构
  • 【图像处理基石】如何进行图像畸变校正?
  • 面试中的项目经验考查:如何让实战经历成为你的决胜王牌
  • 下载即转化的商业密码:解析华为应用商店CPD广告的智能投放逻辑
  • Ubuntu下实现nginx反向代理
  • 基于SpringBoot的商家销售管理网站的设计与实现
  • ubuntu20.04安装教程(图文详解)
  • 历年中南大学计算机保研上机真题
  • LeetCode hot100-8
  • Ubuntu 22.04 上使用 Docker 安装 RagFlow
  • 上栗县建设局网站/网站内容编辑
  • 做动态文字的网站/什么是搜索引擎竞价推广
  • 央视网商城网站建设/潍坊网站建设咨询
  • 金凤区建设交通局网站/百度在线客服
  • 做动态logo网站/潍坊在线制作网站
  • 佛山网站设计优化公司/深圳高端网站建设公司