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

数据结构中的数组的数组表示

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+ 次浏览

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

分组密码和流密码的区别

Kiran Kumar Panigrahi
更新于 2022年7月27日 10:17:01

11K+ 次浏览

分组密码和流密码都属于对称密钥密码家族,它们基本上是加密方法,主要用于直接将明文转换为密文。阅读本文以了解有关分组密码和流密码功能的更多信息以及它们彼此之间的区别。什么是分组密码?分组密码是一种对称加密技术,它使用共享的秘密密钥来加密固定大小的数据块。在加密过程中,使用明文,密文是生成的加密文本。明文和密文都使用相同的密钥进行加密。分组密码…阅读更多

确定性算法和非确定性算法的区别

Kiran Kumar Panigrahi
更新于 2023年2月21日 14:15:03

21K+ 次浏览

在编程环境中,算法是一组按顺序排列的明确指令,用于执行特定任务并获得所需的输出。这里我们说“一组定义的指令”,这意味着用户在某种程度上知道如果这些指令以预期的方式执行,其结果是什么。根据对指令结果的了解,有两种类型的算法,即确定性算法和非确定性算法。阅读本文以了解有关确定性算法和非确定性算法的更多信息以及它们彼此之间的区别。什么是确定性算法?确定性…阅读更多

广告