文章目录

  • 目标
  • 什么是数据结构
  • 复杂度分析

目标

  1. 建立时间复杂度、空间复杂度意识,写出高质量的代码
  2. 能够设计基础架构
  3. 提高编程技能
  4. 训练逻辑思维

什么是数据结构

广义:一组数据的存储结构 | 操作数据的一种方法
解决问题:如何更快更省的处理数据
量化目标:复杂度分析

复杂度分析

  1. 测试结果非常依赖测试环境
  2. 测试结果受数据规模的影响很大

如何分析一段代码的时间复杂度?

  • 仅关心循环执行次数最多的一段代码
  • 加法法则:总复杂度 = 量级最大的那段代码的复杂度
  • 乘法法则:嵌套代码的复杂度 = 嵌套内外代码复杂度的乘积

时间复杂度:

  • 常数O(1):无循环、无递归
  • 对数阶O(log n)/O(n log n):归并排序、快速排序
  • O(m+n)、O(m*n):m 和 n 是表示两个数据规模

空间复杂度

  1. 最好情况时间复杂度
    理想情况
  2. 最坏情况时间复杂度
    最坏情况
  3. 平均时间复杂度
    所有情况加权平均
  4. 均摊时间复杂度
    a. 绝大部分是低级别的复杂度,个别情况是高级别复杂度
    b. 发生具有时序关系
    将个别高级别复杂度均摊到低级别复杂度上
    基本上均摊结果就等于低级别复杂度。

【每日一学】复杂度分析相关推荐

  1. 卷积神经网络的复杂度分析

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 作者 | Michael Yuan@知乎(已授权) 来源 | htt ...

  2. 算法录 之 复杂度分析。

    一个算法的复杂度可以说也就是一个算法的效率,一般来说分为时间复杂度和空间复杂度... 注意接下来说的均是比较YY的,适用与ACM等不需严格分析只需要大致范围的地方,至于严格的算法复杂度分析的那些数学证 ...

  3. 川大和西南交大计算机考研难易度,2020考研:百所211院校报考难易度分析

    2020的考生已经进入准备复习的状态,每年考研的时候很多的考生都在纠结,到底选择什么院校什么专业,那面对这么多战友们,我们该如何选择,才能仍自己脱颖而出呢.下面小编整理了全国211院校报考难易度分析, ...

  4. Barra 结构化风险模型实现(1)——沪深300指数的风格因子暴露度分析

    米筐科技(RiceQuant)策略研究报告:Barra 结构化风险模型实现(1)--沪深300指数的风格因子暴露度分析 江嘉键 1 年前1 概述 Barra 结构化风险模型是全球知名的投资组合表现和风 ...

  5. 数据结构与算法分析c++第四版_数据结构与算法 - 时空复杂度分析

    这周主要总结了时间复杂度的学习,跟小伙伴们分享下,欢迎指正. 一.为何需要分析算法复杂度 挺多同学本科都学习过数据结构和算法这门课,但是有没有想过这门课到底是解决什么问题?科学家设计这些数据结构和算法 ...

  6. 面试官:你连复杂度分析都不懂还敢来面试?

    算法(Algorithm)是指用来操作数据.解决程序问题的一组方法.对于同一个问题,使用不同的算法,也许最终得到的结果是一样的,比如排序就有前面的十大经典排序和几种奇葩排序,虽然结果相同,但在过程中消 ...

  7. OpenCV这么简单为啥不学——1.12、使用ssim函数对两张照片进行相似度分析

    OpenCV这么简单为啥不学--1.12.使用ssim函数对两张照片进行相似度分析 目录 OpenCV这么简单为啥不学--1.12.使用ssim函数对两张照片进行相似度分析 前言 ssim函数 图像相 ...

  8. 结构化风险模型----转:沪深300指数的风格因子暴露度分析(一)

    from: https://xueqiu.com/7381621247/73649418 1 概述 Barra 结构化风险模型是全球知名的投资组合表现和风险分析工具.最近一段时间,我们米筐科技量化策略 ...

  9. python爬虫进阶-每日一学(字体反爬-移花接木)

    目的 分析与学习更多的字体反爬套路 详细需求 url:http://glidedsky.com/level/web/crawler-font-puzzle-2 思路解析 一.审查 二.分析 impor ...

最新文章

  1. c#小软件(SaveClassic)开发手记--(1)前言
  2. error: Upgrade DB using Essex release first.
  3. echarts formatter_手把手教你玩转echarts(二)折线图
  4. ubuntu cmake交叉编译时报错:没有那个文件或目录
  5. c语言match,LeetCode第10题: isMatch(C语言)
  6. float.equals_Java Float类equals()方法与示例
  7. python中iloc的详细用法_python选取特定列 pandas iloc,loc,icol的使用详解(列切片及行切片)...
  8. 1.10 编程基础之简单排序_10 单词排序
  9. Asp.net中基于Forms验证的角色验证授权
  10. nvme驱动_用户态NVMe运维利器 SPDK NVMe 字符设备
  11. spark dataframe学习记录
  12. 这四行棘手的C代码背后的概念
  13. 现有Android项目引入ReactNative--九步大法
  14. 甲骨文公司总部Oracle技术沙龙《Hadoop》邀请函-2013.8.31(周六)
  15. 楚氏春秋(新版)第一部 风起平原
  16. 什么是随机存取_内存和存储器有什么区别?
  17. 【采样算法】拉丁超立方采样
  18. NOIP2015 pj
  19. 电商后台设计:品类管理
  20. 2021年7月电动汽车保有量,充电站数量

热门文章

  1. python 打包 .app 运行 控制台窗口_Python打包工具
  2. 检测缓存文件是否超时
  3. 云开发使用 got 的 get/post 传参请求示例代码
  4. php批量修改文件名
  5. [微信小程序]获取用户当前的城市
  6. 实现简书个人中心UI效果
  7. 排序算法 - 堆排序
  8. OSChina 周六乱弹 —— 就少个接吻的女友了
  9. xcode6 dyld_sim is not owned by root
  10. 论Oracle 11g数据库备份与恢复策略