找到 210 篇文章 关于算法分析

数据结构中的欧拉图和哈密顿图

Arnab Chakraborty
更新于 2020年8月10日 09:06:22

1K+ 次查看

在本节中,我们将了解欧拉图和哈密顿图。但在深入研究之前,我们首先需要了解图中的轨迹。假设我们有一个如下所示的图:轨迹是一条路径,它是一系列边 (v1, v2), (v2, v3), …, (vk - 1, vk),其中所有顶点 (v1, v2, … , vk) 可能不都不同,但所有边都不同。在这个例子中,一个轨迹是 {(B, A), (A, C), (C, D), (D, A), (A, F)} 这是一个轨迹。但这不被认为是简单的…… 阅读更多

数据结构中指向图的深度优先搜索

Arnab Chakraborty
更新于 2020年8月10日 09:04:54

549 次查看

图的深度优先搜索是类似的。但是对于有向图或有向图,我们可以找到一些类型的边。DFS 算法形成一棵称为 DFS 树的树。有四种类型的边:树边 (T) - 存在于 DFS 树中的边;前向边 (F) - 与一组树边平行。(从较小的 DFS 编号到较大的 DFS 编号,以及从较大的 DFS 完成编号到较小的 DFS 完成编号);后向边 (B) - 从较大的 DFS 编号到较小的 DFS 编号,以及从较小的 DFS 完成编号到较大的 DFS 完成编号;交叉边…… 阅读更多

数据结构中图的搜索

Arnab Chakraborty
更新于 2020年8月10日 09:03:06

2K+ 次查看

我们知道图是一种非线性数据结构。在这种数据结构中,我们将一些值放入节点中,这些节点通过不同的边连接起来。由于我们可以将数据存储到图结构中,我们还需要搜索图中的元素才能使用它们。对于图中的搜索,有两种不同的方法。广度优先搜索和深度优先搜索技术。广度优先搜索 (BFS)广度优先搜索 (BFS) 遍历是一种算法,用于访问给定图的所有节点。在这个遍历算法中,选择一个节点,…… 阅读更多

数据结构中加权图的表示

Arnab Chakraborty
更新于 2020年8月10日 09:01:23

17K+ 次查看

众所周知,图可以分为不同的变体。它们可以是有向的或无向的,也可以是有权重的或无权重的。这里我们将看到如何在内存中表示加权图。考虑以下图表:邻接矩阵表示要使用邻接矩阵形式存储加权图,我们将矩阵称为成本矩阵。这里每个位于 M[i, j] 位置的单元格都包含从边 i 到 j 的权重。如果边不存在,则它将是无穷大。对于相同的节点,它将为 0.0∞63∞30∞∞∞∞∞02∞∞110∞∞4∞20邻接表表示在邻接表中,每个元素…… 阅读更多

数据结构中堆的插入和删除

Arnab Chakraborty
更新于 2020年8月10日 08:59:32

5K+ 次查看

这里我们将看到如何从二叉堆数据结构中插入和删除元素。假设初始树如下所示:插入算法insert(heap, n, item): 开始    如果堆已满,则退出    否则       n := n + 1       对于 i := n, i > 1,在每次迭代中设置 i := i / 2,执行          如果 item

数据结构中的二叉堆

Arnab Chakraborty
更新于 2020年8月10日 08:46:41

389 次查看

堆或二叉堆是平衡二叉树数据结构的一种特例。这是一个完整的二叉树结构。因此,最多到 l-1 层都是满的,在 l 层,所有节点都从左边开始。这里将根节点键与其子节点进行比较并进行相应的排列。如果 a 有子节点 b,则:key(a) ≥ key(b)由于父节点的值大于子节点的值,因此此属性会生成最大堆。根据此标准,堆可以分为两种类型:最大堆和最小堆。这些分别是最大堆和最小堆的示例…… 阅读更多

数据结构中的线程二叉树

Arnab Chakraborty
更新于 2020年8月10日 08:39:09

3K+ 次查看

这里我们将看到线程二叉树数据结构。我们知道二叉树节点最多可能有两个子节点。但是,如果它们只有一个子节点或没有子节点,则链表表示中的链接部分将保持为空。使用线程二叉树表示,我们可以通过创建一些线程来重用这些空链接。如果一个节点有一些空闲的左子节点或右子节点区域,则将用作线程。线程二叉树有两种类型。单线程树或全线程二叉树。在单线程模式下,还有另外两种变体。…… 阅读更多

数据结构中的广义列表

Arnab Chakraborty
更新于 2020年8月10日 08:37:45

5K+ 次查看

在本节中,我们将看到广义列表。广义列表可以定义如下:广义列表 L 是 n 个元素 (n ≥ 0) 的有限序列。元素 ei 或者是原子(单个元素),或者是另一个广义列表。不是原子的元素 ei 将是 L 的子列表。假设 L 是 ((A, B, C), ((D, E), F), G)。这里 L 有三个元素子列表 (A, B, C)、子列表 ((D, E), F) 和原子 G。同样,子列表 ((D, E), F) 有两个元素子列表 (D, E) 和原子 F。在 C++ 中,我们…… 阅读更多

数据结构中的稀疏矩阵

Arnab Chakraborty
更新于 2020年8月10日 08:23:11

5K+ 次查看

在本节中,我们将了解什么是稀疏矩阵以及如何将其表示在内存中。因此,如果矩阵的大多数元素为 0,则该矩阵将是稀疏矩阵。另一个定义是,最多具有 1/3 非零元素(大约 m x n 的 30%)的矩阵称为稀疏矩阵。我们在计算机内存中使用矩阵以有效的方式执行某些操作。但是,如果矩阵本质上是稀疏的,它可以帮助我们有效地执行操作,但它会在内存中占用更大的空间。这些空间没有…… 阅读更多

数据结构中的不规则数组

Arnab Chakraborty
更新于 2020年8月10日 08:19:28

619 次查看

这里我们将看到不规则数组。在讨论不规则数组之前,我们必须知道什么是规则数组。规则数组是指每行列数相同的数组。或者换句话说,当每行包含相同数量的元素时,那就是规则数组。下面的表示是一个规则数组。从规则数组的定义中,我们可以理解什么是规则数组。因此,在不规则数组中,每行可能包含或可能不包含相同数量的元素。这种不规则数组也可以表示…… 阅读更多

广告