摘要: ## 排序算法比较 | 排序方法 | 平均时间复杂度 | 最坏情况下时间复杂度 | 额外空间复杂度 | 稳定性| | | | | | | | 简单选择排序 | $O(N^2)$ | $O(N^2)$ | $O(1)$ | 不稳定 | | 冒泡排序 | $O(N^2)$ | $O(N^2)$ | $O 阅读全文
posted @ 2023-06-20 11:24 流星<。)#)))≦ 阅读(7) 评论(0) 推荐(0) 编辑
摘要: ## 引入概念 已知的几种查找方法: |查找方法 | 时间复杂度 | | | | | 顺序查找 | O(N) | |二分查找(静态查找)|$O(log_2N)$| |二叉搜索树|O(h) h为二叉查找树的高度| |平衡二叉树|$O(log_2N)$| 【问题】如何快速搜索到需要的关键词?如果关键词不 阅读全文
posted @ 2023-06-20 11:24 流星<。)#)))≦ 阅读(11) 评论(0) 推荐(0) 编辑
摘要: 一个“好”的散列函数一般应考虑下列两个因素: 1. 计算简单,以便提高转换速度; 2. 关键词对应的地址空间分布均匀,以尽量减少冲突。 ## 数字关键词的散列函数构造 1. 直接定址法 取关键词的某个线性函数值为散列地址,即 $h(key) = a * key + b (a、b为常数)$ 2. 除留 阅读全文
posted @ 2023-06-20 11:24 流星<。)#)))≦ 阅读(52) 评论(0) 推荐(0) 编辑
摘要: 处理冲突的方法 - 开放地址法:换个位置 - 链地址法:同一位置的冲突对象组织在一起 散列表查找性能分析 - 成功平均查找长度(ASLs) - 不成功平均查找长度 (ASLu) ## 开放定址法(Open Addressing) 一旦产生了冲突(该地址已有其它元素),就按某种规则去寻找另一空地址 若 阅读全文
posted @ 2023-06-20 11:24 流星<。)#)))≦ 阅读(22) 评论(0) 推荐(0) 编辑
摘要: - 平均查找长度(ASL)用来度量散列表查找效率:成功、不成功 - 关键词的比较次数,取决于产生冲突的多少 - 影响产生冲突多少有以下三个因素: - 散列函数是否均匀; - 处理冲突的方法; - 散列表的装填因子α 开放地址法: - 散列表是一个数组,存储效率高,随机查找。 - 散列表有“聚集”现象 阅读全文
posted @ 2023-06-20 11:24 流星<。)#)))≦ 阅读(55) 评论(0) 推荐(0) 编辑
摘要: ## 简介 `java.util.LinkedList` LinkedList 相对 ArrayList 要复杂一些,不是因为链表操作比数组操作复杂,而是 LinkedList 实现了更多接口 LinkedList 除了实现 List 接口外,还实现了 Queue 和 Deque 接口,也就意味着可 阅读全文
posted @ 2023-06-20 11:24 流星<。)#)))≦ 阅读(15) 评论(0) 推荐(0) 编辑
摘要: ## 简介 使用参考:`java.util.List` Maven 依赖: ```xml org.jetbrains annotations 24.0.1 ``` ## 注解列表 | 注解 | 描述 | | | | | @Nullable, @NotNull | 检查可空性 | |@Contract 阅读全文
posted @ 2023-06-20 11:24 流星<。)#)))≦ 阅读(197) 评论(0) 推荐(0) 编辑
摘要: ## 源码学习 ### 构造方法 ArrayDeque 有三个构造方法 - ArrayDeque() :默认底层数组大小是16 - ArrayDeque(int numElements) :不是指定底层数组大小,而是指最少要容纳的元素数量,具体大小是大于这个数量的2的n次幂 - ArrayDeque 阅读全文
posted @ 2023-06-20 11:24 流星<。)#)))≦ 阅读(40) 评论(0) 推荐(0) 编辑
摘要: ## 基本信息 - `java.util.Map` - `public interface Map` ## 方法 - clear - compute, computeIfAbsent, computeIfPresent - key不存在,且计算后的value不为null,新增条目 - 根据入参key 阅读全文
posted @ 2023-06-20 11:24 流星<。)#)))≦ 阅读(13) 评论(0) 推荐(0) 编辑
摘要: ## 基本信息 - `java.util.NavigableMap` - `public interface NavigableMap extends SortedMap` - 使用导航方法扩展的 SortedMap 返回给定搜索目标的最接近匹配项。方法 lowerEntry、floorEntry、 阅读全文
posted @ 2023-06-20 11:23 流星<。)#)))≦ 阅读(17) 评论(0) 推荐(0) 编辑
摘要: ## 基本信息 - `java.util.SortedMap` - `public interface SortedMap extends Map` - 对键排序的 Map。 根据其键的natural ordering或通过在创建时提供的Comparator进行排序 ## 方法 - comparat 阅读全文
posted @ 2023-06-20 11:23 流星<。)#)))≦ 阅读(39) 评论(0) 推荐(0) 编辑
摘要: ## 概念 - `public class PriorityQueue extends AbstractQueue implements java.io.Serializable` - 基于优先级堆的无界优先级队列 - 基于自然排序或指定的比较器 - 不允许 null - 队列的头部是相对于指定排序 阅读全文
posted @ 2023-06-20 11:23 流星<。)#)))≦ 阅读(29) 评论(0) 推荐(0) 编辑
摘要: 分析以下方法: - Arrays#sort(int[]) - Arrays#sort(Object[] a) ## DualPivotQuicksort - Arrays#sort(int[]) 使用 DualPivotQuicksort - Dual-Pivot Quicksort 是一种快速排序 阅读全文
posted @ 2023-06-20 11:23 流星<。)#)))≦ 阅读(16) 评论(0) 推荐(0) 编辑
摘要: ## 问题 第一部分,基础入门: 1.数组的优势/劣势 2.链表的优势/劣势 3.有没有一种方式整合两种数据结构的优势?散列表 4.散列表有什么特点? 5.什么是哈希? 第二部分,HashMap原理讲解: 1.HashMap的继承体系是什么样的? 2.Node数据结构分析? 3.底层存储结构介绍? 阅读全文
posted @ 2023-06-20 11:23 流星<。)#)))≦ 阅读(66) 评论(0) 推荐(0) 编辑
摘要: ## 介绍 - `public interface Iterable` - 实现此接口允许对象成为“for-each 循环”语句的目标 ```java // 遍历集合 for (Suit suit: suits) // 遍历数组 for ( int i : a ) ``` - 只有一个抽象方法 it 阅读全文
posted @ 2023-06-20 11:23 流星<。)#)))≦ 阅读(8) 评论(0) 推荐(0) 编辑
摘要: ## 简介 - `public class BitSet implements Cloneable, java.io.Serializable` - 没有实现 Set 接口 - 此类实现了一个按需增长的位向量 - 每个位对应一个布尔值 - BitSet 的位由非负整数索引 - 可以检查、设置或清除各 阅读全文
posted @ 2023-06-20 11:23 流星<。)#)))≦ 阅读(17) 评论(0) 推荐(0) 编辑
摘要: ## 简介 - `public interface Iterator` - 集合上的迭代器 - 取代了 `Enumeration` - 允许迭代期间从底层集合中删除元素 - 方法名称已得到改进 ## 方法 - forEachRemaining 对每个剩余元素执行给定的消费操作 - hasNext - 阅读全文
posted @ 2023-06-20 11:23 流星<。)#)))≦ 阅读(18) 评论(0) 推荐(0) 编辑
摘要: ## 简介 - `public interface List extends Collection` - 有序集合(也称为序列) - 可以精确控制每个元素在列表中的插入位置。用户可以通过整数索引(在列表中的位置)访问元素 - 允许重复元素 - List 接口提供了一个特殊的迭代器,ListItera 阅读全文
posted @ 2023-06-20 11:23 流星<。)#)))≦ 阅读(21) 评论(0) 推荐(0) 编辑
摘要: ## 简介 - `public interface ListIterator extends Iterator` - 允许在任一方向遍历列表 - 在迭代期间修改列表 - 获得迭代器在列表中的当前位置 - ListIterator 没有当前元素;它的光标位置总是位于调用 previous() 返回的元 阅读全文
posted @ 2023-06-20 11:23 流星<。)#)))≦ 阅读(34) 评论(0) 推荐(0) 编辑
摘要: ## 简介 - `public interface Set extends Collection` - 不包含重复元素 ## 方法 - add, addAll - clear - contains, containsAll - equals, hashCode - isEmpty - iterato 阅读全文
posted @ 2023-06-20 11:22 流星<。)#)))≦ 阅读(20) 评论(0) 推荐(0) 编辑