首页 > 编程语言 >算法集合知识点

算法集合知识点

时间:2023-11-03 20:25:51浏览次数:40  
标签:知识点 复杂度 list 链表 算法 查找 数组 集合 节点

时间复杂度

算法执行时间数据规模之间的增长关系。

越来越复杂:常对幂指阶

1698891265438

1698891528100

数组

  • 为什么下标从零开始?
    方便寻址地址的计算,从1开始的话寻址就会多一步-1的运算。
    对于CPU来说多了一步减法指令。

  • 时间复杂度

    • 索引查找
      O(1)

    • 内容查找
      O(n)

    • 插入复杂度

      O(n)

  • 面试题

    • 数组转list Arrays.aslists,数组中的元素变动会影响list么?
      会;数组属于引用传递。

    • list 使用 list.toArray转数组后,list变动会影响数组么?
      不会;使用了System.arrayCopy;属于两个对象了,所以不会有影响。

链表

时间复杂度

  • 查找
    O(n)

  • 插入复杂度(插入头结点)

    O(1)

红黑树

自平衡的二分查找树(O(logn))

  • 根节点都是黑色
  • 红节点的子节点都是黑色
  • 叶子结点都是黑色的null节点
  • 每个分支上的黑节点个数是一样的

散列表

key,value结构,拉链法解决hash冲突问题。

  • key
    经过hash计算以及求模存入定位到数组索引。

  • key,value

  • 追加到链表之后
    当链表长度大于8,链表则变为红黑树(jdk1.8之后)

    扩容后树的节点数小于等于6,退化成链表。

标签:知识点,复杂度,list,链表,算法,查找,数组,集合,节点
From: https://www.cnblogs.com/tyxy/p/17808332.html

相关文章

  • redis知识点
    redis知识点场景类缓存缓存穿透定义:大量查询业务不存在的key击穿redis,直接查询数据库.解决方案:valuenull实施:来一个这样的key,写入到缓存中,将其值设置为null。缺点:会缓存大量这样的内容,内存存在溢出可能。后续如果有这样的业务key生成,则缓存中的数据就会成为脏数据。......
  • mysql知识点
    慢查询定位借助第三方检测工具SkyWalking自研监控系统mysql开启慢查询开启慢查询可能会影响mysql服务器的性能,如果硬盘IO已经是瓶颈的话则影响更为明显。建议做好以下设置:控制日志最大大小定时清理日志使用其他监控工具使用性能监控工具arthas分析......
  • Vue源码学习(十四):diff算法patch比对
    好家伙,本篇将会解释要以下效果的实现 1.目标我们要实现以下元素替换的效果gif: 以上例子的代码://创建vnodeletvm1=newVue({data:{name:'张三'}})letrender1=compileToFunction(`<a>{{name}}</a>`)letvnode1=render1.call(vm1)doc......
  • 算法学习笔记(35): 期望中的停时
    期望中的停时参考自:###鞅与停时定理学习笔记这或许是一个比较抽象的套路吧,知道的就会,不知道的就不会。我们可以如下描述这个套路,或者说利用势能函数\(\Phi\)来理解。对于随机事件\(\{A_0,A_1,...\}\),存在一个最终局面\(A_t=e\),我们需要求\(A_t\)第一次出现在\(A......
  • 【Flask框架】全知识点笔记4章60页MD文档,今日主题:flask视图和路由开发
    本文的主要内容:flask视图&路由、虚拟环境安装、路由各种定义、状态保持、cookie、session、模板基本使用、过滤器&自定义过滤器、模板代码复用:宏、继承/包含、模板中特有变量和函数、Flask-WTF表单、CSRF、数据库操作、ORM、Flask-SQLAlchemy、增删改查操作、案例、蓝图、单元测......
  • 无涯教程-MongoDB - 删除集合
    在本章中,无涯教程将看到如何使用MongoDB删除集合。MongoDB的db.collection.drop()用于从数据库中删除集合。DropCollection-语法drop()命令的基本语法如下-db.COLLECTION_NAME.drop()DropCollection-示例首先,将可用集合检入数据库mydb。>usemydbswitchedtod......
  • TSINGSEE青犀智能分析网关人员徘徊AI算法应用场景概述
    我们的AI边缘计算网关硬件——智能分析网关目前有5个版本:V1、V2、V3、V4、V5,每个版本都能实现对监控视频的智能识别和分析,支持抓拍、记录、告警等,每个版本在算法模型及性能配置上略有不同。硬件可实现的AI检测包括:人脸结构化数据、车辆结构化数据、场景检测类算法、行业类检测算......
  • 文心一言 VS 讯飞星火 VS chatgpt (127)-- 算法导论11.2 2题
    二、用go语言,位向量(bitvector)是一个仅包含0和1的数组。长度为m的位向量所占空间要比包含m个指针的数组少得多。请说明如何用一个位向量来表示一个包含不同元素(无卫星数据)的动态集合。字典操作的运行时间应为O(1)。文心一言,代码正常运行:在Go语言中,我们可以使用map[int]bool......
  • 文心一言 VS 讯飞星火 VS chatgpt (127)-- 算法导论11.2 2题
    二、用go语言,位向量(bitvector)是一个仅包含0和1的数组。长度为m的位向量所占空间要比包含m个指针的数组少得多。请说明如何用一个位向量来表示一个包含不同元素(无卫星数据)的动态集合。字典操作的运行时间应为O(1)。文心一言,代码正常运行:在Go语言中,我们可以使用map[int]bool来......
  • 离线快速LCA(最近公共祖先) Tarjan算法
    离线快速LCA(最近公共祖先)Tarjan算法前言对于OIer来说,LCA一直是处理树上问题的好帮手,无论是倍增还是树剖都有着优秀的\(\logn\)的复杂度。不过由于我们(数据规模)的上进,需要更快速求LCA,于是就有了……反正之前打死我都不相信这玩意能离线,还能O(1)算法思路首先来一棵树:......