找到 510 篇文章 关于算法

数据结构中的邻接表

Arnab Chakraborty
更新于 2019-08-27 13:45:56

4K+ 阅读量

图是一种非线性数据结构。它使用节点表示数据,并使用边表示节点之间的关系。一个图 G 包含两个部分:顶点和边。顶点用集合 V 表示,边用集合 E 表示。所以图的表示法为 G(V, E)。让我们看一个例子来理解一下。在这个图中,有五个顶点和五条边。这些边是有向的。例如,如果我们选择连接顶点 B 和 D 的边,则源顶点为 B,目标顶点为 D。所以我们可以从 B 移动到 D,但不能从 ... 阅读更多

数据结构中排序方法的比较

Arnab Chakraborty
更新于 2019-08-27 13:43:07

6K+ 阅读量

在这里我们将看到一些排序方法。有 200 多种排序技术。我们将看到其中的一些。一些排序技术是基于比较的排序,一些是非基于比较的排序技术。基于比较的排序技术包括冒泡排序、选择排序、插入排序、归并排序、快速排序、堆排序等。这些技术被认为是基于比较的排序,因为在这些技术中,值会被比较,并在不同的阶段被放置到排序的位置。在这里我们将看到这些技术的复杂度分析。分析类型冒泡排序选择排序插入排序归并排序快速排序堆排序最佳情况O(n2)O(n2)O(n)O(log n)O(log n)O(logn)平均情况O(n2)O(n2)O(n2)O(log n)O(log n)O(log n)最坏情况O(n2)O(n2)O(n2)O(log n)O(n2)O(log n)一些排序算法是 ... 阅读更多

数据结构中搜索方法的比较

Arnab Chakraborty
更新于 2019-08-27 13:39:01

5K+ 阅读量

在不同的情况下,我们执行不同的搜索方案来查找一些键。在本节中,我们将看到两种搜索技术(顺序搜索和二分搜索)之间的基本区别是什么。顺序搜索二分搜索时间复杂度为 O(n)时间复杂度为 O(log n)在常数时间内找到位于第一个位置的键在常数时间内找到位于中间位置的键容器中元素的顺序不影响。容器中的元素必须已排序数组和链表可用于实现它不能直接在链表中实现。我们需要更改基本规则 ... 阅读更多

数据结构中的栈 ADT

Arnab Chakraborty
更新于 2019-08-27 13:36:02

22K+ 阅读量

抽象数据类型是一种特殊的类型,其行为由一组值和一组操作定义。“抽象”这个关键词的使用是因为我们可以使用这些数据类型,可以执行不同的操作。但是这些操作是如何工作的,对用户来说是完全隐藏的。ADT 由基本数据类型组成,但操作逻辑是隐藏的。在这里我们将看到栈 ADT。这些是栈 ADT 的一些操作或函数。isFull(),用于检查栈是否已满isEmpry(),用于检查栈是否为空 ... 阅读更多

数据结构中的凸包示例

Arnab Chakraborty
更新于 2019-08-27 13:34:33

2K+ 阅读量

在这里我们将看到一个关于凸包的例子。假设我们有一组点。我们必须通过取最少的点数来创建一个多边形,该多边形将覆盖所有给定的点。在本节中,我们将看到 Jarvis March 算法来获取凸包。Jarvis March 算法用于从给定的一组数据点中检测凸包的角点。从数据集的最左点开始,我们通过逆时针旋转将点保持在凸包中。从当前点,我们可以通过检查 ... 阅读更多

数据结构中的最优二叉搜索树

Arnab Chakraborty
更新于 2019-08-27 13:03:53

1K+ 阅读量

一组整数按排序顺序给出,以及另一个数组 freq 表示频率计数。我们的任务是使用这些数据创建一个二叉搜索树,以找到所有搜索的最小成本。创建了一个辅助数组 cost[n, n] 来解决和存储子问题的解决方案。成本矩阵将保存数据以自底向上方式解决问题。输入 - 作为节点的键值和频率。键 = {10, 12, 20} 频率 = {34, 8, 50}输出 - 最小成本为 142。这些是从给定值中可能得到的 BST。对于情况 1,成本 ... 阅读更多

数据结构中的负二项分布

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

103 阅读量

负二项分布是一种随机数分布,它将根据负二项离散分布生成整数。这被称为帕斯卡分布,因此负二项分布可以写成$$P\lgroup i\arrowvert k,p\rgroup=\lgroup \frac{k+i-1}{i}\rgroup p^{k}\lgroup 1-p\rgroup^{i}$$示例 实时演示#include #include using namespace std; int main(){    const int nrolls = 10000; // 掷骰子的次数    const int nstars = 100; // 分布的最大星数    default_random_engine generator;    negative_binomial_distribution distribution(3,0.5);    int p[10]={};    for (int i=0; i

数据结构中的几何分布

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

311 阅读量

几何分布是对于 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 阅读量

二项分布是获得 N 次伯努利试验(具有用 x = 0 和 x = 1 标记的两个可能结果)中 n 次成功的离散概率分布 Pp(n | 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

广告