- 博客(3)
- 资源 (3)
- 收藏
- 关注
原创 HashMap的实现原理
HashMap是数组 + 链表 + 红黑树(JDK1.8新增红黑树部分)实现的数据底层具体存储的是什么?这样存储方式的优点是什么?1) 一个重要的字段 -- Node[] table 哈希桶数组,Node 是HashMap的一个内部类,实现了Map.Entry 接口,本质上是一个键值对,上图中的每一个黑色原点就代表一个Node对象2)HashMap就是使用哈希表来存储的,Java中采用链地址法(数组加链表的组合)来解决哈希冲突。 链地址法: 在每个数组元素上都有一个链表结构..
2021-03-29 19:23:09 165
原创 2021-03-09
提到数据结构+算法的学习,有两个问题是不可避免的,一个是时间复杂度,可以理解为算法的运行时间,如果算法运行时间太长,那这个算法就没法用;另一个是算法的空间复杂度,可以理解为把算法存储在计算机中需要多大的空间,如果需要空间太大,那这个算法也没法用。因此,需要对一个算法的时间复杂度和空间复杂度进行分析,来确定该算法的可行性。时间复杂度的分析,一般有两种方法: 事后统计法 事前分析法 事后统计法是用测试程序和数据来运行已编写好的算法,对其执行时间进行比较。这种方法看似可以精确的计算算.
2021-03-09 10:57:35 253
原创 理解算法中的时间复杂度,O(1),O(n),O(log2n),O(n^2)
算法复杂度分为时间复杂度和空间复杂度,二者也是衡量代码的好坏两个重要指标:时间复杂度:指执行算法所需要的计算工作量; 间复杂度:指执行这个算法所需要的内存空间。算法的复杂性体现在运行该算法时的计算机所需资源的多少上,计算机资源最重要的是时间和空间(即寄存器)资源,因此复杂度分为时间和空间复杂度。1. 概念理解1.1 基本执行次数:T(n)由于运行环境和输入规模的影响,代码的绝对执行时间是无法估计的,但我们可以估算出代码的基本执行次数。一般情况下,算法中基本操作重复执行的次数是问题规模
2021-03-04 11:00:32 1794 1
NoteHighlight2016.msi
2021-06-09
xmind zen 64 补丁
2019-05-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人