首页 > 其他分享 >第一章 时间复杂度和空间复杂度

第一章 时间复杂度和空间复杂度

时间:2024-12-13 13:28:29浏览次数:6  
标签:复杂度 第一章 次数 循环 时间 数组 空间 数据结构

一  集合框架

1.作用:对数据进行管理,方便高效地进行增删改查,其管理有多种数据结构来实现,在java中利用集合框架来实现不同的数据结构

2.在Java中学习集合框架的要求

(1)学会如何使用

(2)学会其内部实现原理

二  时间复杂度

1.作用:用于衡量某个数据结构执行效率的时间指标,用于消除直接计算时间时机器不同带来的差异,只以代码结构为唯一变量,衡量运行快满

2.判断方法:大O渐进法,通过比较次数来比较谁更好

(1)首先找到问题规模

注:问题规模如果有数组,则为数组长度,无数组,则为其对应的循环次数,或区间长度(包括递归所隐藏起来的循环)

(2)找到重复性的操作,以它为基准,大概写出次数与问题规模N的关系

注:由于for循环内部的条件都较为简单,一般不会将其作为基准,而套在循环内部的内容可能较为复杂,都是以循环内的内容作为基准

(3)进行化简(只保留N的最高项,以及化N前面的系数为1)

注:只需要大概表示次数与N的关系即可,看的是趋势,而不是具体的次数

3.特殊:

(1)重复性操作与问题规模无关时,时间复杂度为O(1),即为常量级时间复杂度

(2)二分查找:其关系满足2的查找次数方等于其数组的区间长度(相当于N),但由于我们求的是次数与问题规模N的关系,所以要对其取对数,得到O(logN)

(3)有些情况,时间复杂度是不确定的,但是我们一般考虑它最坏的情况,或是平均的情况,最好的情况没什么参考价值

注:在计算机中以2为底可以不用写出来,以其他数为底则需要显示标明

4.应用:通过比较时间复杂度的大小,就可以评判各个数据结构的执行效率,判断其适合增删改查的哪一个方面,以及不适合哪个方面

5.大小排序:越小越高效

O(1)<O(logN)<O(N)<O(NlogN)<O(N^2)<O(2^N)

三  空间复杂度

1.作用:评判代码占用资源

2.区别:

硬盘:持久化存储

内存:支持程序运行,但关机后就不存在了

3.判断:大O渐进法,与时间复杂度相类似 

注意:(1)其计算的时候不计入问题规模N本身的大小

(2)注意时间流逝了就没了,空间是重复利用的,所以我们认为其反复创建和销毁的变量为消耗一份

(3)是在方法快结束之前进行计算

所以内部有方法调用虽然会占用栈帧,但是在结束前调用结束释放栈帧了那就不在算入了

标签:复杂度,第一章,次数,循环,时间,数组,空间,数据结构
From: https://blog.csdn.net/huipeng926/article/details/144438291

相关文章

  • Windows Server 上启用存储空间中的重复数据删除功能(Data Deduplication),你可以按照以
    WindowsServer上启用存储空间中的重复数据删除功能(DataDeduplication),你可以按照以下步骤在PowerShell中配置。1.启用重复数据删除功能首先,确保你的系统已经安装了DataDeduplication功能。如果没有安装,可以使用以下命令进行安装:powershellCopyCodeInstall-WindowsFea......
  • 【数据结构与算法图解】学习笔记(第一章)①:分析数组操作过程中的时间复杂度
    文章目录前言一、第一章:数据结构为何重要1.概念(步数,时间复杂度)【第一个理论】:书中的第一个重要理论:操作的速度,并不按时间计算,而是按`步数`计算。2,了解数组2.1通过(读取,查找,插入,删除)来分析2.1.1读取(看任意索引上的值)2.1.2查找(看数组/列表中有没有该值)2.1.3插入(往......
  • 【YashanDB知识库】UNDO表空间膨胀怎么处理
    问题现象用户反馈UNDO表空间持续膨胀,出现UNDO空间不足,需要查明原因并如何做清理。问题的风险及影响影响对应功能使用问题影响的版本YashanDB版本:23.2及以上所有版本解决方法及规避方式在崖山是官网上有对UNDO空间的详细描述,UNDO的基本知识比较齐全,可以查阅UNDO表空间管理......
  • PCIe扫盲——PCI总线的地址空间分配
    PCI总线具有32位数据/地址复用总线,所以其存储地址空间为2的32次方=4GB。也就是PCI上的所有设备共同映射到这4GB上,每个PCI设备占用唯一的一段PCI地址,以便于PCI总线统一寻址。每个PCI设备通过PCI寄存器中的基地址寄存器来指定映射的首地址。如下图所示:注:需要注意的是PCI的地址空间......
  • 中国网络空间安全协会发布用于大模型的首批中文基础语料库
    中文基础语料库页面截图。澎湃新闻从中国网络空间安全协会获悉,12月20日,中国网络空间安全协会人工智能安全治理专业委员会在北京发布了用于大模型的首批中文基础语料库。中国网络空间安全协会相关负责人介绍,在中央网信办相关业务部门指导下,网安协会人工智能安全治理专委会会......
  • 为什么 Java 8 移除了永久代(PermGen)并引入了元空间(Metaspace)?
    为什么Java8移除了永久代(PermGen)并引入了元空间(Metaspace)?在Java8中,JVM移除了永久代(PermGen)并引入了元空间(Metaspace),这一改变主要是为了解决PermGen空间不足和内存管理效率低的问题。以下是具体原因和改动的细节。1.永久代的局限性PermGen是JVM内存的一部分......
  • 用主定理求解递归算法的复杂度
    主定理(MasterTheorem)是一种常见于算法分析中的工具。它指出了如何解决与分治和递归有关算法的时间复杂度。主定理主定理的标准形式是分析以下递归式的实际复杂度:\[T(n)=aT\left(\frac{n}{b}\right)+f(n),\]其中:\(a\geq1\)是递归调用的数量,表明问题被切割为几个子问......
  • java核心基础 第一章 基石篇
    内容概述在java的世界里,我们离不开三个核心的概念,这是java世界的基石。他们分别是java语言、JVM、JDK。本章的学习目标是深刻理解java语言、JVM、和JDK。并额外需要理解一个classpath这个概念。以及要知道java程序运行时都需要经历哪些环节。前置阅读本章涉及到的一些术......
  • 作业Day1:思维导图、堆区申请空间并释放
    作业:思维导图:作业:在堆区空间连续申请5个int类型大小空间,用来存放从终端输入的5个学生成绩,然后显示5个学生成绩,再将学生成绩升序排序,排序后,再次显示学生成绩。显示和排序分别用函数完成要求:用malloc和free完成代码:#include<stdio.h>#include<stdlib.h>voidDisplay(int......
  • 2、存储容量和存储地址空间的转换
    1、注意点存储容量=字数*位数,字数即地址总数存储空间=末地址-首地址+1字长:计算机一次处理的二进制位数2、例题:(1)某计算机的内存以字节编址,地址范围为30000H到AFFFFH,求存储容量。存储空间=地址总数= AFFFFH- 30000H+1=80000H=1000000000000000000......