复杂度 | 学习笔记

简介: 快速学习复杂度

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

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


复杂度


目录:

一、时间复杂度

二、空间复杂度

 

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

 

一、时间复杂度

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


二、空间复杂度

占用的内存大

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

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

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

相关文章
|
4天前
|
存储 算法
数据结构与算法:复杂度
数据结构: 数据结构是用于存储和组织数据的方式,以便可以有效地访问和修改数据。不同的数据结构适用于不同类型的应用,并且具体的数据结构可以大幅影响程序的性能。数据结构分为两大类:线性数据结构和非线性数据结构。 算法: 算法是完成特定任务的一系列操作步骤,是解决问题的明确规范。算法的效率通常通过时间复杂度和空间复杂度来评估,即算法执行所需的时间和空间资源。
|
4天前
|
机器学习/深度学习
复杂度练习
复杂度练习
|
8月前
|
算法
数据结构与算法1.2 算法的定义 什么是好的算法 复杂度的渐进表示
数据结构与算法1.2 算法的定义 什么是好的算法 复杂度的渐进表示
37 0
|
6月前
|
缓存 分布式计算 并行计算
平摊复杂度
平摊复杂度(Amortized Complexity)是一种在计算复杂度时使用的技术,用于描述算法在多次运行中的平均性能。平摊复杂度能够将一次性计算的复杂度分摊到多次运行中,从而更准确地衡量算法在实际应用中的性能。
35 3
|
7月前
|
存储 算法
【算法的复杂度】
【算法的复杂度】
25 0
|
7月前
|
算法
算法中的复杂度
算法中的复杂度
29 0
|
8月前
|
存储 算法 数据库
算法:复杂度
算法:复杂度
50 0
|
算法
【数据结构与算法01】 算法的复杂度
【数据结构与算法01】 算法的复杂度
81 0
|
存储 算法
算法学习 | 加深了解算法的复杂度
本篇从时间复杂度和空间复杂度出发,深入了解一下算法的复杂性。
127 1
|
机器学习/深度学习 算法 C语言
[最全算法总结]我是如何将递归算法的复杂度优化到O(1)的
[最全算法总结]我是如何将递归算法的复杂度优化到O(1)的
148 0
[最全算法总结]我是如何将递归算法的复杂度优化到O(1)的