找到 346 篇文章 关于数据结构算法

数据结构中的几何分布

Arnab Chakraborty
更新于 2019-08-27 12:50:58

309 次浏览

几何分布是离散概率分布,对于 n = 0, 1, 2, …,具有概率密度函数:$$P\lgroup n\rgroup=p\lgroup1-p\rgroup^{n}$$分布函数为:$$D\lgroup n\rgroup=\displaystyle\sum\limits_{i=0}^n P\lgroup i \rgroup=1-q^{n+1}$$示例 在线演示#include #include using namespace std; int main(){    const int nrolls = 10000; // 掷骰子次数    const int nstars = 100; // 分布的最大星数    default_random_engine generator;    geometric_distribution distribution(0.3);    int p[10]={};    for (int i=0; i

数据结构中的二项分布

Arnab Chakraborty
更新于 2019-08-27 12:41:00

335 次浏览

二项分布是离散概率分布 Pp(n | N),表示在 N 次伯努利试验(有两个可能的结果,用 x = 0 和 x = 1 表示)中获得 n 次成功的概率。x = 1 表示成功,x = 0 表示失败。成功的概率为 p,失败的概率为 q,其中 q = 1 – p。因此,二项分布可以写成:$$P_{p}\lgroup n\:\arrowvert\ N\rgroup=\left(\begin{array}{c}N\ n\end{array}\right) p^{n}\lgroup1-p\rgroup^{N-n}$$示例 在线演示#include #include using namespace std; int main(){    const int nrolls = 10000; // 掷骰子次数    const int nstars = 100; // ... 阅读更多

数据结构中的伯努利分布

Arnab Chakraborty
更新于 2019-08-27 12:33:29

298 次浏览

伯努利分布是离散分布,有两个可能的结果,用 x = 0 和 x = 1 表示。x = 1 表示成功,x = 0 表示失败。成功的概率为 p,失败的概率为 q,其中 q = 1 – p。所以$$P\lgroup x\rgroup=\begin{cases}1-p\:for & x = 0\p\:for & x = 0\end{cases}$$这也可以写成:$$P\lgroup x\rgroup=p^{n}\lgroup1-p\rgroup^{1-n}$$示例 在线演示#include #include using namespace std; int main(){    const int nrolls=10000;    default_random_engine generator;    bernoulli_distribution distribution(0.7);    int count=0; // 统计真值的数量    for (int i=0; i

数据结构中的最小生成树

Arnab Chakraborty
更新于 2019-08-27 12:29:59

16K+ 次浏览

生成树是无向图的一个子集,它通过最少的边将所有顶点连接起来。如果图中的所有顶点都连接在一起,则至少存在一个生成树。在一个图中,可能存在多个生成树。最小生成树最小生成树 (MST) 是连接加权无向图中所有顶点在一起的边的子集,并且具有最小的总边权重。为了导出 MST,可以使用 Prim 算法或 Kruskal 算法。因此,我们将在本章中讨论 Prim 算法。正如我们... 阅读更多

数据结构中 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

428 次浏览

在本节中,我们将了解二叉搜索树的先序遍历技术(递归)。假设我们有一棵这样的树:遍历顺序如下:10, 5, 8, 16, 15, 20, 23算法preorderTraverse(root):开始    如果根节点不为空,则       打印根节点的值       preorderTraversal(根节点的左子节点)       preorderTraversal(根节点的右子节点)    结束 if 结束示例 在线演示#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算法postorderTraverse(root):开始    如果根节点不为空,则       postorderTraversal(根节点的左子节点)       postorderTraversal(根节点的右子节点)       打印根节点的值    结束 if 结束示例 在线演示#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:34:58

373 次浏览

在本节中,我们将了解二叉搜索树的层序遍历技术。假设我们有一棵这样的树:遍历顺序如下:10, 5, 16, 8, 15, 20, 23算法levelOrderTraverse(root):开始    定义队列 que 用于存储节点    将根节点插入队列。    当队列不为空时,执行       item := 队列前端的元素       打印 item 的值       如果 item 的左子节点不为空,则          将 item 的左子节点插入队列       结束 ... 阅读更多

广告

© . All rights reserved.