 链式法则链式法则 主讲人:龙良曲 Derivative Rules Basic Rule ▪ ? + ? ▪ ? − ? Product rule ▪ ?? ′ = ?′? + ??′ ▪ ?4′ = ?2 ∗ ?2 ′ = 2? ∗ ?2 + ?2 ∗ 2? = 4?3 Quotient Rule ▪ ? ? = ?′?+??′ ?2 ▪ e.g. Softmax Chain0 码力 | 10 页 | 610.60 KB | 1 年前3 链式法则链式法则 主讲人:龙良曲 Derivative Rules Basic Rule ▪ ? + ? ▪ ? − ? Product rule ▪ ?? ′ = ?′? + ??′ ▪ ?4′ = ?2 ∗ ?2 ′ = 2? ∗ ?2 + ?2 ∗ 2? = 4?3 Quotient Rule ▪ ? ? = ?′?+??′ ?2 ▪ e.g. Softmax Chain0 码力 | 10 页 | 610.60 KB | 1 年前3
 Hello 算法 1.1.0 C++ 版更小。Java 和 C# 等编程语言默认使用 UTF‑16 编码。 2. Q & A Q:为什么哈希表同时包含线性数据结构和非线性数据结构? 哈希表底层是数组,而为了解决哈希冲突,我们可能会使用“链式地址”(后续“哈希冲突”章节会讲):数 组中每个桶指向一个链表,当链表长度超过一定阈值时,又可能被转化为树(通常为红黑树)。 从存储的角度来看,哈希表的底层是数组,其中每一个桶槽位可能包含一个值,也可能包含一个链表或一棵 ‧ 栈与队列:当插入和删除操作都在链表的一端进行时,它表现出先进后出的特性,对应栈;当插入操作 在链表的一端进行,删除操作在链表的另一端进行,它表现出先进先出的特性,对应队列。 ‧ 哈希表:链式地址是解决哈希冲突的主流方案之一,在该方案中,所有冲突的元素都会被放到一个链表 中。 ‧ 图:邻接表是表示图的一种常用方式,其中图的每个顶点都与一个链表相关联,链表中的每个元素都代 表与该顶点相连的其他顶点。 哈希表的结构改良方法主要包括“链式地址”和“开放寻址”。 6.2.1 链式地址 在原始哈希表中,每个桶仅能存储一个键值对。链式地址(separate chaining)将单个元素转换为链表,将键 值对作为链表节点,将所有发生冲突的键值对都存储在同一链表中。图 6‑5 展示了一个链式地址哈希表的例 子。 图 6‑5 链式地址哈希表 第 6 章 哈希表 hello‑algo.com 122 基于链式地址实现的哈希表的操作方法发生了以下变化。0 码力 | 379 页 | 18.47 MB | 1 年前3 Hello 算法 1.1.0 C++ 版更小。Java 和 C# 等编程语言默认使用 UTF‑16 编码。 2. Q & A Q:为什么哈希表同时包含线性数据结构和非线性数据结构? 哈希表底层是数组,而为了解决哈希冲突,我们可能会使用“链式地址”(后续“哈希冲突”章节会讲):数 组中每个桶指向一个链表,当链表长度超过一定阈值时,又可能被转化为树(通常为红黑树)。 从存储的角度来看,哈希表的底层是数组,其中每一个桶槽位可能包含一个值,也可能包含一个链表或一棵 ‧ 栈与队列:当插入和删除操作都在链表的一端进行时,它表现出先进后出的特性,对应栈;当插入操作 在链表的一端进行,删除操作在链表的另一端进行,它表现出先进先出的特性,对应队列。 ‧ 哈希表:链式地址是解决哈希冲突的主流方案之一,在该方案中,所有冲突的元素都会被放到一个链表 中。 ‧ 图:邻接表是表示图的一种常用方式,其中图的每个顶点都与一个链表相关联,链表中的每个元素都代 表与该顶点相连的其他顶点。 哈希表的结构改良方法主要包括“链式地址”和“开放寻址”。 6.2.1 链式地址 在原始哈希表中,每个桶仅能存储一个键值对。链式地址(separate chaining)将单个元素转换为链表,将键 值对作为链表节点,将所有发生冲突的键值对都存储在同一链表中。图 6‑5 展示了一个链式地址哈希表的例 子。 图 6‑5 链式地址哈希表 第 6 章 哈希表 hello‑algo.com 122 基于链式地址实现的哈希表的操作方法发生了以下变化。0 码力 | 379 页 | 18.47 MB | 1 年前3
 Hello 算法 1.1.0 C#版更小。Java 和 C# 等编程语言默认使用 UTF‑16 编码。 2. Q & A Q:为什么哈希表同时包含线性数据结构和非线性数据结构? 哈希表底层是数组,而为了解决哈希冲突,我们可能会使用“链式地址”(后续“哈希冲突”章节会讲):数 组中每个桶指向一个链表,当链表长度超过一定阈值时,又可能被转化为树(通常为红黑树)。 从存储的角度来看,哈希表的底层是数组,其中每一个桶槽位可能包含一个值,也可能包含一个链表或一棵 ‧ 栈与队列:当插入和删除操作都在链表的一端进行时,它表现出先进后出的特性,对应栈;当插入操作 在链表的一端进行,删除操作在链表的另一端进行,它表现出先进先出的特性,对应队列。 ‧ 哈希表:链式地址是解决哈希冲突的主流方案之一,在该方案中,所有冲突的元素都会被放到一个链表 中。 ‧ 图:邻接表是表示图的一种常用方式,其中图的每个顶点都与一个链表相关联,链表中的每个元素都代 表与该顶点相连的其他顶点。 作。 哈希表的结构改良方法主要包括“链式地址”和“开放寻址”。 6.2.1 链式地址 在原始哈希表中,每个桶仅能存储一个键值对。链式地址(separate chaining)将单个元素转换为链表,将键 值对作为链表节点,将所有发生冲突的键值对都存储在同一链表中。图 6‑5 展示了一个链式地址哈希表的例 子。 图 6‑5 链式地址哈希表 基于链式地址实现的哈希表的操作方法发生了以下变化。0 码力 | 378 页 | 18.47 MB | 1 年前3 Hello 算法 1.1.0 C#版更小。Java 和 C# 等编程语言默认使用 UTF‑16 编码。 2. Q & A Q:为什么哈希表同时包含线性数据结构和非线性数据结构? 哈希表底层是数组,而为了解决哈希冲突,我们可能会使用“链式地址”(后续“哈希冲突”章节会讲):数 组中每个桶指向一个链表,当链表长度超过一定阈值时,又可能被转化为树(通常为红黑树)。 从存储的角度来看,哈希表的底层是数组,其中每一个桶槽位可能包含一个值,也可能包含一个链表或一棵 ‧ 栈与队列:当插入和删除操作都在链表的一端进行时,它表现出先进后出的特性,对应栈;当插入操作 在链表的一端进行,删除操作在链表的另一端进行,它表现出先进先出的特性,对应队列。 ‧ 哈希表:链式地址是解决哈希冲突的主流方案之一,在该方案中,所有冲突的元素都会被放到一个链表 中。 ‧ 图:邻接表是表示图的一种常用方式,其中图的每个顶点都与一个链表相关联,链表中的每个元素都代 表与该顶点相连的其他顶点。 作。 哈希表的结构改良方法主要包括“链式地址”和“开放寻址”。 6.2.1 链式地址 在原始哈希表中,每个桶仅能存储一个键值对。链式地址(separate chaining)将单个元素转换为链表,将键 值对作为链表节点,将所有发生冲突的键值对都存储在同一链表中。图 6‑5 展示了一个链式地址哈希表的例 子。 图 6‑5 链式地址哈希表 基于链式地址实现的哈希表的操作方法发生了以下变化。0 码力 | 378 页 | 18.47 MB | 1 年前3
 Hello 算法 1.1.0 Dart版更小。Java 和 C# 等编程语言默认使用 UTF‑16 编码。 2. Q & A Q:为什么哈希表同时包含线性数据结构和非线性数据结构? 哈希表底层是数组,而为了解决哈希冲突,我们可能会使用“链式地址”(后续“哈希冲突”章节会讲):数 组中每个桶指向一个链表,当链表长度超过一定阈值时,又可能被转化为树(通常为红黑树)。 从存储的角度来看,哈希表的底层是数组,其中每一个桶槽位可能包含一个值,也可能包含一个链表或一棵 ‧ 栈与队列:当插入和删除操作都在链表的一端进行时,它表现出先进后出的特性,对应栈;当插入操作 在链表的一端进行,删除操作在链表的另一端进行,它表现出先进先出的特性,对应队列。 ‧ 哈希表:链式地址是解决哈希冲突的主流方案之一,在该方案中,所有冲突的元素都会被放到一个链表 中。 ‧ 图:邻接表是表示图的一种常用方式,其中图的每个顶点都与一个链表相关联,链表中的每个元素都代 表与该顶点相连的其他顶点。 作。 哈希表的结构改良方法主要包括“链式地址”和“开放寻址”。 6.2.1 链式地址 在原始哈希表中,每个桶仅能存储一个键值对。链式地址(separate chaining)将单个元素转换为链表,将键 值对作为链表节点,将所有发生冲突的键值对都存储在同一链表中。图 6‑5 展示了一个链式地址哈希表的例 子。 图 6‑5 链式地址哈希表 基于链式地址实现的哈希表的操作方法发生了以下变化。0 码力 | 378 页 | 18.45 MB | 1 年前3 Hello 算法 1.1.0 Dart版更小。Java 和 C# 等编程语言默认使用 UTF‑16 编码。 2. Q & A Q:为什么哈希表同时包含线性数据结构和非线性数据结构? 哈希表底层是数组,而为了解决哈希冲突,我们可能会使用“链式地址”(后续“哈希冲突”章节会讲):数 组中每个桶指向一个链表,当链表长度超过一定阈值时,又可能被转化为树(通常为红黑树)。 从存储的角度来看,哈希表的底层是数组,其中每一个桶槽位可能包含一个值,也可能包含一个链表或一棵 ‧ 栈与队列:当插入和删除操作都在链表的一端进行时,它表现出先进后出的特性,对应栈;当插入操作 在链表的一端进行,删除操作在链表的另一端进行,它表现出先进先出的特性,对应队列。 ‧ 哈希表:链式地址是解决哈希冲突的主流方案之一,在该方案中,所有冲突的元素都会被放到一个链表 中。 ‧ 图:邻接表是表示图的一种常用方式,其中图的每个顶点都与一个链表相关联,链表中的每个元素都代 表与该顶点相连的其他顶点。 作。 哈希表的结构改良方法主要包括“链式地址”和“开放寻址”。 6.2.1 链式地址 在原始哈希表中,每个桶仅能存储一个键值对。链式地址(separate chaining)将单个元素转换为链表,将键 值对作为链表节点,将所有发生冲突的键值对都存储在同一链表中。图 6‑5 展示了一个链式地址哈希表的例 子。 图 6‑5 链式地址哈希表 基于链式地址实现的哈希表的操作方法发生了以下变化。0 码力 | 378 页 | 18.45 MB | 1 年前3
 Hello 算法 1.1.0 Go版更小。Java 和 C# 等编程语言默认使用 UTF‑16 编码。 2. Q & A Q:为什么哈希表同时包含线性数据结构和非线性数据结构? 哈希表底层是数组,而为了解决哈希冲突,我们可能会使用“链式地址”(后续“哈希冲突”章节会讲):数 组中每个桶指向一个链表,当链表长度超过一定阈值时,又可能被转化为树(通常为红黑树)。 从存储的角度来看,哈希表的底层是数组,其中每一个桶槽位可能包含一个值,也可能包含一个链表或一棵 ‧ 栈与队列:当插入和删除操作都在链表的一端进行时,它表现出先进后出的特性,对应栈;当插入操作 在链表的一端进行,删除操作在链表的另一端进行,它表现出先进先出的特性,对应队列。 ‧ 哈希表:链式地址是解决哈希冲突的主流方案之一,在该方案中,所有冲突的元素都会被放到一个链表 中。 ‧ 图:邻接表是表示图的一种常用方式,其中图的每个顶点都与一个链表相关联,链表中的每个元素都代 表与该顶点相连的其他顶点。 作。 哈希表的结构改良方法主要包括“链式地址”和“开放寻址”。 6.2.1 链式地址 在原始哈希表中,每个桶仅能存储一个键值对。链式地址(separate chaining)将单个元素转换为链表,将键 值对作为链表节点,将所有发生冲突的键值对都存储在同一链表中。图 6‑5 展示了一个链式地址哈希表的例 子。 图 6‑5 链式地址哈希表 基于链式地址实现的哈希表的操作方法发生了以下变化。0 码力 | 383 页 | 18.48 MB | 1 年前3 Hello 算法 1.1.0 Go版更小。Java 和 C# 等编程语言默认使用 UTF‑16 编码。 2. Q & A Q:为什么哈希表同时包含线性数据结构和非线性数据结构? 哈希表底层是数组,而为了解决哈希冲突,我们可能会使用“链式地址”(后续“哈希冲突”章节会讲):数 组中每个桶指向一个链表,当链表长度超过一定阈值时,又可能被转化为树(通常为红黑树)。 从存储的角度来看,哈希表的底层是数组,其中每一个桶槽位可能包含一个值,也可能包含一个链表或一棵 ‧ 栈与队列:当插入和删除操作都在链表的一端进行时,它表现出先进后出的特性,对应栈;当插入操作 在链表的一端进行,删除操作在链表的另一端进行,它表现出先进先出的特性,对应队列。 ‧ 哈希表:链式地址是解决哈希冲突的主流方案之一,在该方案中,所有冲突的元素都会被放到一个链表 中。 ‧ 图:邻接表是表示图的一种常用方式,其中图的每个顶点都与一个链表相关联,链表中的每个元素都代 表与该顶点相连的其他顶点。 作。 哈希表的结构改良方法主要包括“链式地址”和“开放寻址”。 6.2.1 链式地址 在原始哈希表中,每个桶仅能存储一个键值对。链式地址(separate chaining)将单个元素转换为链表,将键 值对作为链表节点,将所有发生冲突的键值对都存储在同一链表中。图 6‑5 展示了一个链式地址哈希表的例 子。 图 6‑5 链式地址哈希表 基于链式地址实现的哈希表的操作方法发生了以下变化。0 码力 | 383 页 | 18.48 MB | 1 年前3
 Hello 算法 1.1.0 Java版更小。Java 和 C# 等编程语言默认使用 UTF‑16 编码。 2. Q & A Q:为什么哈希表同时包含线性数据结构和非线性数据结构? 哈希表底层是数组,而为了解决哈希冲突,我们可能会使用“链式地址”(后续“哈希冲突”章节会讲):数 组中每个桶指向一个链表,当链表长度超过一定阈值时,又可能被转化为树(通常为红黑树)。 从存储的角度来看,哈希表的底层是数组,其中每一个桶槽位可能包含一个值,也可能包含一个链表或一棵 ‧ 栈与队列:当插入和删除操作都在链表的一端进行时,它表现出先进后出的特性,对应栈;当插入操作 在链表的一端进行,删除操作在链表的另一端进行,它表现出先进先出的特性,对应队列。 ‧ 哈希表:链式地址是解决哈希冲突的主流方案之一,在该方案中,所有冲突的元素都会被放到一个链表 中。 ‧ 图:邻接表是表示图的一种常用方式,其中图的每个顶点都与一个链表相关联,链表中的每个元素都代 表与该顶点相连的其他顶点。 作。 哈希表的结构改良方法主要包括“链式地址”和“开放寻址”。 6.2.1 链式地址 在原始哈希表中,每个桶仅能存储一个键值对。链式地址(separate chaining)将单个元素转换为链表,将键 值对作为链表节点,将所有发生冲突的键值对都存储在同一链表中。图 6‑5 展示了一个链式地址哈希表的例 子。 图 6‑5 链式地址哈希表 基于链式地址实现的哈希表的操作方法发生了以下变化。0 码力 | 378 页 | 18.47 MB | 1 年前3 Hello 算法 1.1.0 Java版更小。Java 和 C# 等编程语言默认使用 UTF‑16 编码。 2. Q & A Q:为什么哈希表同时包含线性数据结构和非线性数据结构? 哈希表底层是数组,而为了解决哈希冲突,我们可能会使用“链式地址”(后续“哈希冲突”章节会讲):数 组中每个桶指向一个链表,当链表长度超过一定阈值时,又可能被转化为树(通常为红黑树)。 从存储的角度来看,哈希表的底层是数组,其中每一个桶槽位可能包含一个值,也可能包含一个链表或一棵 ‧ 栈与队列:当插入和删除操作都在链表的一端进行时,它表现出先进后出的特性,对应栈;当插入操作 在链表的一端进行,删除操作在链表的另一端进行,它表现出先进先出的特性,对应队列。 ‧ 哈希表:链式地址是解决哈希冲突的主流方案之一,在该方案中,所有冲突的元素都会被放到一个链表 中。 ‧ 图:邻接表是表示图的一种常用方式,其中图的每个顶点都与一个链表相关联,链表中的每个元素都代 表与该顶点相连的其他顶点。 作。 哈希表的结构改良方法主要包括“链式地址”和“开放寻址”。 6.2.1 链式地址 在原始哈希表中,每个桶仅能存储一个键值对。链式地址(separate chaining)将单个元素转换为链表,将键 值对作为链表节点,将所有发生冲突的键值对都存储在同一链表中。图 6‑5 展示了一个链式地址哈希表的例 子。 图 6‑5 链式地址哈希表 基于链式地址实现的哈希表的操作方法发生了以下变化。0 码力 | 378 页 | 18.47 MB | 1 年前3
 Hello 算法 1.1.0 JavaScript版更小。Java 和 C# 等编程语言默认使用 UTF‑16 编码。 2. Q & A Q:为什么哈希表同时包含线性数据结构和非线性数据结构? 哈希表底层是数组,而为了解决哈希冲突,我们可能会使用“链式地址”(后续“哈希冲突”章节会讲):数 组中每个桶指向一个链表,当链表长度超过一定阈值时,又可能被转化为树(通常为红黑树)。 从存储的角度来看,哈希表的底层是数组,其中每一个桶槽位可能包含一个值,也可能包含一个链表或一棵 ‧ 栈与队列:当插入和删除操作都在链表的一端进行时,它表现出先进后出的特性,对应栈;当插入操作 在链表的一端进行,删除操作在链表的另一端进行,它表现出先进先出的特性,对应队列。 ‧ 哈希表:链式地址是解决哈希冲突的主流方案之一,在该方案中,所有冲突的元素都会被放到一个链表 中。 ‧ 图:邻接表是表示图的一种常用方式,其中图的每个顶点都与一个链表相关联,链表中的每个元素都代 表与该顶点相连的其他顶点。 作。 哈希表的结构改良方法主要包括“链式地址”和“开放寻址”。 6.2.1 链式地址 在原始哈希表中,每个桶仅能存储一个键值对。链式地址(separate chaining)将单个元素转换为链表,将键 值对作为链表节点,将所有发生冲突的键值对都存储在同一链表中。图 6‑5 展示了一个链式地址哈希表的例 子。 图 6‑5 链式地址哈希表 基于链式地址实现的哈希表的操作方法发生了以下变化。0 码力 | 379 页 | 18.46 MB | 1 年前3 Hello 算法 1.1.0 JavaScript版更小。Java 和 C# 等编程语言默认使用 UTF‑16 编码。 2. Q & A Q:为什么哈希表同时包含线性数据结构和非线性数据结构? 哈希表底层是数组,而为了解决哈希冲突,我们可能会使用“链式地址”(后续“哈希冲突”章节会讲):数 组中每个桶指向一个链表,当链表长度超过一定阈值时,又可能被转化为树(通常为红黑树)。 从存储的角度来看,哈希表的底层是数组,其中每一个桶槽位可能包含一个值,也可能包含一个链表或一棵 ‧ 栈与队列:当插入和删除操作都在链表的一端进行时,它表现出先进后出的特性,对应栈;当插入操作 在链表的一端进行,删除操作在链表的另一端进行,它表现出先进先出的特性,对应队列。 ‧ 哈希表:链式地址是解决哈希冲突的主流方案之一,在该方案中,所有冲突的元素都会被放到一个链表 中。 ‧ 图:邻接表是表示图的一种常用方式,其中图的每个顶点都与一个链表相关联,链表中的每个元素都代 表与该顶点相连的其他顶点。 作。 哈希表的结构改良方法主要包括“链式地址”和“开放寻址”。 6.2.1 链式地址 在原始哈希表中,每个桶仅能存储一个键值对。链式地址(separate chaining)将单个元素转换为链表,将键 值对作为链表节点,将所有发生冲突的键值对都存储在同一链表中。图 6‑5 展示了一个链式地址哈希表的例 子。 图 6‑5 链式地址哈希表 基于链式地址实现的哈希表的操作方法发生了以下变化。0 码力 | 379 页 | 18.46 MB | 1 年前3
 Hello 算法 1.1.0 Kotlin版更小。Java 和 C# 等编程语言默认使用 UTF‑16 编码。 2. Q & A Q:为什么哈希表同时包含线性数据结构和非线性数据结构? 哈希表底层是数组,而为了解决哈希冲突,我们可能会使用“链式地址”(后续“哈希冲突”章节会讲):数 组中每个桶指向一个链表,当链表长度超过一定阈值时,又可能被转化为树(通常为红黑树)。 从存储的角度来看,哈希表的底层是数组,其中每一个桶槽位可能包含一个值,也可能包含一个链表或一棵 ‧ 栈与队列:当插入和删除操作都在链表的一端进行时,它表现出先进后出的特性,对应栈;当插入操作 在链表的一端进行,删除操作在链表的另一端进行,它表现出先进先出的特性,对应队列。 ‧ 哈希表:链式地址是解决哈希冲突的主流方案之一,在该方案中,所有冲突的元素都会被放到一个链表 中。 ‧ 图:邻接表是表示图的一种常用方式,其中图的每个顶点都与一个链表相关联,链表中的每个元素都代 表与该顶点相连的其他顶点。 作。 哈希表的结构改良方法主要包括“链式地址”和“开放寻址”。 6.2.1 链式地址 在原始哈希表中,每个桶仅能存储一个键值对。链式地址(separate chaining)将单个元素转换为链表,将键 值对作为链表节点,将所有发生冲突的键值对都存储在同一链表中。图 6‑5 展示了一个链式地址哈希表的例 子。 图 6‑5 链式地址哈希表 基于链式地址实现的哈希表的操作方法发生了以下变化。0 码力 | 381 页 | 18.47 MB | 1 年前3 Hello 算法 1.1.0 Kotlin版更小。Java 和 C# 等编程语言默认使用 UTF‑16 编码。 2. Q & A Q:为什么哈希表同时包含线性数据结构和非线性数据结构? 哈希表底层是数组,而为了解决哈希冲突,我们可能会使用“链式地址”(后续“哈希冲突”章节会讲):数 组中每个桶指向一个链表,当链表长度超过一定阈值时,又可能被转化为树(通常为红黑树)。 从存储的角度来看,哈希表的底层是数组,其中每一个桶槽位可能包含一个值,也可能包含一个链表或一棵 ‧ 栈与队列:当插入和删除操作都在链表的一端进行时,它表现出先进后出的特性,对应栈;当插入操作 在链表的一端进行,删除操作在链表的另一端进行,它表现出先进先出的特性,对应队列。 ‧ 哈希表:链式地址是解决哈希冲突的主流方案之一,在该方案中,所有冲突的元素都会被放到一个链表 中。 ‧ 图:邻接表是表示图的一种常用方式,其中图的每个顶点都与一个链表相关联,链表中的每个元素都代 表与该顶点相连的其他顶点。 作。 哈希表的结构改良方法主要包括“链式地址”和“开放寻址”。 6.2.1 链式地址 在原始哈希表中,每个桶仅能存储一个键值对。链式地址(separate chaining)将单个元素转换为链表,将键 值对作为链表节点,将所有发生冲突的键值对都存储在同一链表中。图 6‑5 展示了一个链式地址哈希表的例 子。 图 6‑5 链式地址哈希表 基于链式地址实现的哈希表的操作方法发生了以下变化。0 码力 | 381 页 | 18.47 MB | 1 年前3
 Hello 算法 1.1.0 Python版更小。Java 和 C# 等编程语言默认使用 UTF‑16 编码。 2. Q & A Q:为什么哈希表同时包含线性数据结构和非线性数据结构? 哈希表底层是数组,而为了解决哈希冲突,我们可能会使用“链式地址”(后续“哈希冲突”章节会讲):数 组中每个桶指向一个链表,当链表长度超过一定阈值时,又可能被转化为树(通常为红黑树)。 从存储的角度来看,哈希表的底层是数组,其中每一个桶槽位可能包含一个值,也可能包含一个链表或一棵 ‧ 栈与队列:当插入和删除操作都在链表的一端进行时,它表现出先进后出的特性,对应栈;当插入操作 在链表的一端进行,删除操作在链表的另一端进行,它表现出先进先出的特性,对应队列。 ‧ 哈希表:链式地址是解决哈希冲突的主流方案之一,在该方案中,所有冲突的元素都会被放到一个链表 中。 第 4 章 数组与链表 hello‑algo.com 76 ‧ 图:邻接表是表示图的一种常用方式,其中图的 哈希表的结构改良方法主要包括“链式地址”和“开放寻址”。 6.2.1 链式地址 在原始哈希表中,每个桶仅能存储一个键值对。链式地址(separate chaining)将单个元素转换为链表,将键 值对作为链表节点,将所有发生冲突的键值对都存储在同一链表中。图 6‑5 展示了一个链式地址哈希表的例 子。 第 6 章 哈希表 hello‑algo.com 115 图 6‑5 链式地址哈希表 基于链式地址实现的哈希表的操作方法发生了以下变化。0 码力 | 364 页 | 18.42 MB | 1 年前3 Hello 算法 1.1.0 Python版更小。Java 和 C# 等编程语言默认使用 UTF‑16 编码。 2. Q & A Q:为什么哈希表同时包含线性数据结构和非线性数据结构? 哈希表底层是数组,而为了解决哈希冲突,我们可能会使用“链式地址”(后续“哈希冲突”章节会讲):数 组中每个桶指向一个链表,当链表长度超过一定阈值时,又可能被转化为树(通常为红黑树)。 从存储的角度来看,哈希表的底层是数组,其中每一个桶槽位可能包含一个值,也可能包含一个链表或一棵 ‧ 栈与队列:当插入和删除操作都在链表的一端进行时,它表现出先进后出的特性,对应栈;当插入操作 在链表的一端进行,删除操作在链表的另一端进行,它表现出先进先出的特性,对应队列。 ‧ 哈希表:链式地址是解决哈希冲突的主流方案之一,在该方案中,所有冲突的元素都会被放到一个链表 中。 第 4 章 数组与链表 hello‑algo.com 76 ‧ 图:邻接表是表示图的一种常用方式,其中图的 哈希表的结构改良方法主要包括“链式地址”和“开放寻址”。 6.2.1 链式地址 在原始哈希表中,每个桶仅能存储一个键值对。链式地址(separate chaining)将单个元素转换为链表,将键 值对作为链表节点,将所有发生冲突的键值对都存储在同一链表中。图 6‑5 展示了一个链式地址哈希表的例 子。 第 6 章 哈希表 hello‑algo.com 115 图 6‑5 链式地址哈希表 基于链式地址实现的哈希表的操作方法发生了以下变化。0 码力 | 364 页 | 18.42 MB | 1 年前3
 Hello 算法 1.1.0 Swift版更小。Java 和 C# 等编程语言默认使用 UTF‑16 编码。 2. Q & A Q:为什么哈希表同时包含线性数据结构和非线性数据结构? 哈希表底层是数组,而为了解决哈希冲突,我们可能会使用“链式地址”(后续“哈希冲突”章节会讲):数 组中每个桶指向一个链表,当链表长度超过一定阈值时,又可能被转化为树(通常为红黑树)。 从存储的角度来看,哈希表的底层是数组,其中每一个桶槽位可能包含一个值,也可能包含一个链表或一棵 ‧ 栈与队列:当插入和删除操作都在链表的一端进行时,它表现出先进后出的特性,对应栈;当插入操作 在链表的一端进行,删除操作在链表的另一端进行,它表现出先进先出的特性,对应队列。 ‧ 哈希表:链式地址是解决哈希冲突的主流方案之一,在该方案中,所有冲突的元素都会被放到一个链表 中。 ‧ 图:邻接表是表示图的一种常用方式,其中图的每个顶点都与一个链表相关联,链表中的每个元素都代 表与该顶点相连的其他顶点。 哈希表的结构改良方法主要包括“链式地址”和“开放寻址”。 第 6 章 哈希表 hello‑algo.com 120 6.2.1 链式地址 在原始哈希表中,每个桶仅能存储一个键值对。链式地址(separate chaining)将单个元素转换为链表,将键 值对作为链表节点,将所有发生冲突的键值对都存储在同一链表中。图 6‑5 展示了一个链式地址哈希表的例 子。 图 6‑5 链式地址哈希表 基于链式地址实现的哈希表的操作方法发生了以下变化。0 码力 | 379 页 | 18.47 MB | 1 年前3 Hello 算法 1.1.0 Swift版更小。Java 和 C# 等编程语言默认使用 UTF‑16 编码。 2. Q & A Q:为什么哈希表同时包含线性数据结构和非线性数据结构? 哈希表底层是数组,而为了解决哈希冲突,我们可能会使用“链式地址”(后续“哈希冲突”章节会讲):数 组中每个桶指向一个链表,当链表长度超过一定阈值时,又可能被转化为树(通常为红黑树)。 从存储的角度来看,哈希表的底层是数组,其中每一个桶槽位可能包含一个值,也可能包含一个链表或一棵 ‧ 栈与队列:当插入和删除操作都在链表的一端进行时,它表现出先进后出的特性,对应栈;当插入操作 在链表的一端进行,删除操作在链表的另一端进行,它表现出先进先出的特性,对应队列。 ‧ 哈希表:链式地址是解决哈希冲突的主流方案之一,在该方案中,所有冲突的元素都会被放到一个链表 中。 ‧ 图:邻接表是表示图的一种常用方式,其中图的每个顶点都与一个链表相关联,链表中的每个元素都代 表与该顶点相连的其他顶点。 哈希表的结构改良方法主要包括“链式地址”和“开放寻址”。 第 6 章 哈希表 hello‑algo.com 120 6.2.1 链式地址 在原始哈希表中,每个桶仅能存储一个键值对。链式地址(separate chaining)将单个元素转换为链表,将键 值对作为链表节点,将所有发生冲突的键值对都存储在同一链表中。图 6‑5 展示了一个链式地址哈希表的例 子。 图 6‑5 链式地址哈希表 基于链式地址实现的哈希表的操作方法发生了以下变化。0 码力 | 379 页 | 18.47 MB | 1 年前3
共 219 条
- 1
- 2
- 3
- 4
- 5
- 6
- 22














