复杂度 | 学习笔记

开发者学堂课程【Java 面试疑难点串讲5:系统架构及项目设计复杂度】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/28/detail/610


复杂度


目录:

一、时间复杂度

二、空间复杂度

 

评价一个项目的好与坏,最简单的标准:时间复杂度和空间复杂度。

 

一、时间复杂度

  • 处理逻辑非常的复杂
  • 例如:递归、循环结构复杂
  • 复杂度直接的影响就是 CPU 的占用率高


二、空间复杂度

占用的内存大

例如:在进行 JDBC 进行数据查询时会出现一个问题:假设你的数据库有 1000w条数据,没有使用分页,这些记录都将加载到内存之中。所以内存占用率就会很高。

假设这些数据会占用 20G 的内存,那么一个服务器一定需要为上万人服务,这时所占用的内存非常的庞大,服务器无法处理。对于空间复杂度的操作处理,通过最简单的分页算法可以实现约定,而对于时间复杂度,太复杂的逻辑运算不会在一台服务器上进行,需要设计多台的开发服务器。

最好的效果:处理,占用内存小。

上一篇:穿越数据的变迁--如何使用阿里云Redis数据闪回进行按时间点的数据恢复


下一篇:使用矩阵和四元数实现三维模型的空间定位