找到 1861 篇文章 关于数据结构

稀疏矩阵在数据结构中的应用

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

5K+ 次浏览

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

不规则数组在数据结构中的应用

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

622 次浏览

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

数组的数组表示法在数据结构中的应用

Arnab Chakraborty
更新于 2020年8月10日 08:17:35

622 次浏览

在本节中,我们将看到多维数组的另一种表示方法。在这里,我们将看到数组的数组表示法。在这种形式中,我们有一个数组,它包含多个数组的起始地址。表示将如下所示。这是一个大小为 [7 x 8] 的二维数组 x。每一行都表示为一个一维数组。初始数组包含这些单个数组的地址。它们是地址数组,因此我们可以说它是一个指针数组。每个指针都包含另一个数组的地址。创建这种…… 阅读更多

异构数组在数据结构中的应用

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

1K+ 次浏览

众所周知,数组根据定义是同构的。因此,我们必须在数组中放入相同类型的数据。但是,如果我们想存储不同类型的数据,那么有什么技巧呢?在像 C 这样的旧语言中,我们可以使用联合来人工地将不同类型合并成一种类型。然后,我们可以在此新类型上定义一个数组。这里,数组元素实际包含的对象类型由一个标记确定。让我们看看这样的结构 - struct Vehicle{    int id;    union {       Bus ... 阅读更多

数组加倍在数据结构中的应用

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

2K+ 次浏览

有时我们使用动态内存分配创建数组。如果使用动态内存分配技术分配数组,我们可以通过执行一些操作来加倍数组的大小。假设初始数组大小为 5。数组 0 1 2 3 4 元素 1 元素 2 元素 3 元素 4 元素 5 数组加倍后,大小为 - 0 1 2 3 4 5 6 7 8 9 元素 1 元素 2 元素 3 元素 4 元素 5 元素 6 元素 7 元素 8 元素 9 元素 10 要将大小为 n 的数组 arr 加倍,arr[0…n-1]。首先,我们必须创建一个大小为 m 的新数组。然后将 n 个元素从 arr 复制到新数组。最后,更改 arr 的值以指向新数组。要…… 阅读更多

替换法在数据结构中的应用

Arnab Chakraborty
更新于 2020年8月10日 08:05:13

5K+ 次浏览

在这里,我们将了解如何使用替换法来解决递推关系。我们将举两个例子来更好地理解它。假设我们使用的是二分查找技术。在这种技术中,我们检查元素是否位于末尾。如果它位于中间,则算法终止,否则我们一次又一次地从实际数组中取左子数组和右子数组。因此,在每一步中,数组的大小都会减少 n / 2。假设二分查找算法花费 T(n) 的时间来执行。基…… 阅读更多

递推方程在数据结构中的应用

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

1K+ 次浏览

在算法分析过程中,我们发现了一些递推关系。这些递推关系基本上在表达式中使用了相同的函数。在大多数情况下,对于递归算法分析和分治算法,我们得到递推关系。在这里,我们将通过一些例子来了解递推方程的一个例子。假设我们使用的是二分查找技术。在这种技术中,我们检查元素是否位于末尾。如果它位于中间,则算法终止,否则我们一次又一次地从实际数组中取左子数组和右子数组…… 阅读更多

计算数据结构中的缓存未命中

Arnab Chakraborty
更新于 2020年8月10日 08:01:20

218 次浏览

在算法分析中,我们计算操作和步骤。当计算机执行操作所需的时间比获取该操作所需数据的时间长得多时,这基本上是合理的。如今,执行操作的成本远低于从内存中获取数据的成本。许多算法的运行时间主要取决于内存引用次数(缓存未命中次数),而不是操作次数。因此,当我们尝试设计一些算法时,我们必须关注不仅要减少操作次数,还要减少…… 阅读更多

算法中的操作计数方法

Arnab Chakraborty
更新于 2020年8月10日 07:57:52

3K+ 次浏览

有不同的方法来估计某个算法的成本。一种方法是使用操作计数。我们可以通过选择不同的操作之一来估计算法的时间复杂度。这些操作例如加法、减法等。我们必须检查执行了多少次这些操作。这种方法的成功取决于我们识别出对时间复杂度贡献最大的操作的能力。假设我们有一个大小为 n [0 到 n - 1] 的数组。我们的算法将找到最大元素的索引。我们可以通过计算…… 阅读更多

用于 CSMA/CD 的后退算法

sudhir sharma
更新于 2020年8月6日 07:58:20

5K+ 次浏览

后退算法是一种用于冲突解决的算法。它的工作原理是,当发生冲突时,两个设备都会等待一段时间,然后再重新传输信号,它们会不断尝试,直到数据成功传输。这称为后退,因为节点在再次尝试访问之前会“后退”一段时间。这段随机的时间与它尝试传输信号的次数成正比。算法下面是一个简单的流程图,简要解释了后退算法。可以看出,…… 阅读更多

广告