在本节中,我们将了解什么是稀疏矩阵以及如何在内存中表示它们。如果矩阵的大部分元素为 0,则该矩阵为稀疏矩阵。另一个定义是,非零元素最多占 1/3 的矩阵(大约 m x n 的 30%)称为稀疏矩阵。我们在计算机内存中使用矩阵以高效的方式进行一些操作。但是,如果矩阵本质上是稀疏的,它可能有助于我们高效地进行操作,但它将占用更大的内存空间。这些空间没有…… 阅读更多
众所周知,数组根据定义是同构的。因此,我们必须在数组中放入相同类型的数据。但是,如果我们想存储不同类型的数据,那么有什么技巧呢?在像 C 这样的旧语言中,我们可以使用联合来人工地将不同类型合并成一种类型。然后,我们可以在此新类型上定义一个数组。这里,数组元素实际包含的对象类型由一个标记确定。让我们看看这样的结构 - struct Vehicle{ int id; union { Bus ... 阅读更多
有不同的方法来估计某个算法的成本。一种方法是使用操作计数。我们可以通过选择不同的操作之一来估计算法的时间复杂度。这些操作例如加法、减法等。我们必须检查执行了多少次这些操作。这种方法的成功取决于我们识别出对时间复杂度贡献最大的操作的能力。假设我们有一个大小为 n [0 到 n - 1] 的数组。我们的算法将找到最大元素的索引。我们可以通过计算…… 阅读更多