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

DFS 和 BFS 在数据结构中的应用

Arnab Chakraborty
更新于 2019-08-27 12:25:37

18K+ 浏览量

在这里我们将了解图的 DFS 和 BFS 算法的不同应用。DFS 或深度优先搜索用于不同的地方。一些常见的用途是 -如果我们在无权图上执行 DFS,则它将为所有对最短路径树创建最小生成树我们可以使用 DFS 检测图中的循环。如果我们在 BFS 期间获得一条后向边,则必须存在一个循环。使用 DFS,我们可以在两个给定顶点 u 和 v 之间找到路径。我们可以执行拓扑排序用于根据作业之间给定的依赖关系来安排作业。拓扑排序 ... 阅读更多

图及其遍历算法

Arnab Chakraborty
更新于 2023-09-08 23:02:20

46K+ 浏览量

在本节中,我们将了解什么是图数据结构,以及它的遍历算法。图是一种非线性数据结构。它由一些节点及其连接的边组成。边可能是定向的或无向的。该图可以表示为 G(V, E)。以下图可以表示为 G({A, B, C, D, E}, {(A, B), (B, D), (D, E), (B, C), (C, A)})图有两种类型的遍历算法。它们被称为广度优先搜索和深度优先搜索。广度优先搜索 (BFS)广度优先搜索 (BFS) 遍历是一种算法,... 阅读更多

数据结构中的二叉搜索树

Arnab Chakraborty
更新于 2019-08-27 12:13:24

602 浏览量

二叉搜索树是具有某些属性的二叉树。这些属性如下所示 -每个二叉搜索树都是一个二叉树每个左孩子都将保存小于根的值每个右孩子都将保存大于根的值理想的二叉搜索树不会重复相同的值两次。假设我们有一棵这样的树 -这棵树是一个二叉搜索树。它遵循所有提到的属性。如果我们以中序遍历模式遍历元素,我们可以得到 5、8、10、15、16、20、23。让我们看看一段代码来了解我们如何在... 阅读更多

数据结构中的先序树遍历

Arnab Chakraborty
更新于 2019-08-27 12:07:28

427 浏览量

在本节中,我们将了解二叉搜索树的先序遍历技术(递归)。假设我们有一棵这样的树 -遍历顺序如下:10、5、8、16、15、20、23算法先序遍历(根):开始    如果根不为空,则       打印根的值       先序遍历(根的左子树)       先序遍历(根的右子树)    结束如果结束示例 在线演示#include using namespace std; class node{    public:       int h_left, h_right, bf, value;       node *left, *right; }; class tree{    private:       node *get_node(int key);   ... 阅读更多

数据结构中的后序树遍历

Arnab Chakraborty
更新于 2020-01-21 12:17:37

386 浏览量

在本节中,我们将了解二叉搜索树的后序遍历技术(递归)。假设我们有一棵这样的树 -遍历顺序如下:8、5、15、23、20、16、10算法后序遍历(根):开始    如果根不为空,则       后序遍历(根的左子树)       后序遍历(根的右子树)       打印根的值    结束如果结束示例 在线演示#include using namespace std; class node{    public:       int h_left, h_right, bf, value;       node *left, *right; }; class tree{    private:       node *get_node(int key);   ... 阅读更多

数据结构中的二叉树遍历

Arnab Chakraborty
更新于 2019-08-27 11:23:47

929 浏览量

在本节中,我们将了解不同的遍历算法来遍历二叉搜索树中存在的键。这些遍历是中序遍历、先序遍历、后序遍历和层序遍历。假设我们有一棵这样的树 -中序遍历顺序如下 - 5 8 10 15 16 20 23先序遍历顺序如下 - 10 5 8 16 15 20 23后序遍历顺序如下 - 8 5 15 23 20 16 10层序遍历顺序如下 - 10、5、16、8、15、20、23算法中序遍历(根):开始    如果根不... 阅读更多

数据结构中的二叉树及其属性

Arnab Chakraborty
更新于 2019-08-27 11:04:14

4K+ 浏览量

在本节中,我们将了解二叉树数据结构的一些重要属性。假设我们有一棵这样的二叉树。一些属性是 -第'l'层的最大节点数将为$2^{l-1}$。这里层级是从根到节点的路径上的节点数,包括根本身。我们认为根的层级是 1。高度为 h 的二叉树中存在的最大节点数为$2^{h}-1$。这里高度是从根到叶路径上的最大节点数。在这里,我们认为一棵树的高度为... 阅读更多

数据结构中的二叉树表示

Arnab Chakraborty
更新于 2019-08-27 10:47:48

15K+ 浏览量

在这里我们将了解如何在计算机内存中表示二叉树。有两种不同的表示方法。这些是使用数组和使用链接列表。假设我们有一棵这样的树 -数组表示通过使用层序方式扫描元素来存储树数据。因此,它按层存储节点。如果缺少某些元素,则为其保留空白空间。上面树的表示如下 -12345678910111213141510516-81520-------23索引 1 存储根,它有两个子节点 5 和 16,它们分别位于位置 2 和 3。一些子节点是... 阅读更多

数据结构中数组的操作

Arnab Chakraborty
更新于 2019-08-27 10:38:25

689 浏览量

在这里,我们将了解数组数据结构的一些基本操作。这些操作是 -遍历插入删除搜索更新遍历是扫描数组的所有元素。插入操作是在数组的给定位置添加一些元素,删除是从数组中删除元素并在删除后更新其他元素的相应位置。搜索是在数组中查找存在的某些元素,更新是在给定位置更新元素的值。让我们看看一个 C++ 示例代码以获得更好的理解。示例 在线演示#include #include using namespace std; main(){    vector arr;    //插入元素 ... 阅读更多

数据结构中的均摊时间复杂度

Arnab Chakraborty
更新于 2019-08-27 09:15:10

896 浏览量

均摊分析这种分析用于偶尔的操作非常慢,但大多数执行非常频繁的操作都更快。在数据结构中,我们需要对哈希表、不相交集等进行均摊分析。在哈希表中,大多数情况下搜索时间复杂度为 O(1),但有时会执行 O(n) 操作。当我们想要在哈希表中搜索或插入元素时,在大多数情况下,它是在常数时间内完成任务,但是当发生冲突时,它需要 O(n) 次操作来解决冲突。聚合方法聚合方法用于... 阅读更多

广告