找到 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。Array01234Element 1Element 2Element 3Element 4Element 5数组加倍后,大小为 -0123456789Element 1Element 2Element 3Element 4Element 5Element 6Element 7Element 8Element 9Element 10要加倍大小为 n 的数组 arr,arr[0…n-1]。首先,我们必须创建一个大小为 m 的新数组。然后将 arr 中的 n 个元素复制到新数组中。最后更改 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+ 浏览量

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

广告