clrs相关内容

使用有偏随机数生成器的无偏随机数生成器

您有一个有偏随机数生成器,它以概率 p 生成 1,以概率 (1-p) 生成 0.你不知道 p 的值.使用它制作一个无偏随机数生成器,它以 0.5 的概率产生 1,以 0.5 的概率产生 0. 注意:此问题是 Cormen、Leiserson、Rivest、Stein 的《算法导论》中的一个练习题.(clrs) 解决方案 事件 (p)(1-p) 和 (1-p)(p) 是等概率的.将它们 ..
发布时间:2021-12-21 16:08:24 其他开发

为什么不考虑参数/参数传递方式的算法时间复杂度?

根据语言的不同,传递参数/参数的方式会具有不同的时间复杂度,这是不正确的.那么,为什么书中用来衡量时间复杂度的算法或程序中没有考虑或考虑到这一点呢?马克·艾伦·韦斯(Mark Allen Weiss)撰写的CLRS或数据结构与算法分析永远不会增加整个程序运行时传递参数的时间复杂度?我误会了吗?我知道CLRS是伪代码,但是Mark Allen Weiss的算法分析显示了Java特有的代码. 解 ..
发布时间:2021-04-02 20:50:35 其他开发

最大重叠点

假设我们希望跟踪一组间隔中最大重叠的点-数据库中间隔最大的点与该点重叠. a.证明总会有一个最大重叠点,该重叠点是这些分段之一的终点. b.设计一个有效支持操作INTERVAL-INSERT,INTERVAL-DELETE和FIND-POM的数据结构,该操作将返回最大重叠点.(提示:保留所有端点的红黑树.将值+1与每个左端点相关联,将值-1与每个右端点相关联.用一些额外的信息增强树的每 ..
发布时间:2021-04-02 20:34:32 其他开发

如何用数组实现紧凑的链表?

这是锻炼问题 CLRS 10.3-4我正在尝试解决 通常希望将双向链表的所有元素紧凑地存储在存储区中, 例如,使用多数组表示形式中的前m个索引位置. (在分页的虚拟内存计算环境中就是这种情况.)说明如何实现过程ALLOCATE OBJECT和FREE OBJECT,以便表示形式紧凑.假定在列表本身之外没有指向链接列表元素的指针. (提示:使用堆栈的数组实现.) 到目前为止,这是我的烦恼 ..
发布时间:2020-08-22 21:00:08 C/C++开发

在线性时间内打印出不相交的数据结构中的节点

我正试图在Cormen等人的“算法简介"中进行此练习,该练习与Disjoin Set数据结构有关: 假设我们希望添加操作PRINT-SET(x),该操作已给出 节点x,并以任何顺序打印x的集合的所有成员.展示如何 我们可以向不交集中的每个节点仅添加一个属性 森林,以便PRINT-SET(x)花费个时间线性的成员数 x的设置以及其他运算的渐近运行时间 不变.假设我们可以在O(1)中打印集合的每 ..
发布时间:2020-08-22 19:55:31 其他开发

我们是否可以使用循环不变式证明算法的正确性,在其中我们证明在第一次迭代之后而不是之前是正确的?

CLRS表示 我们必须显示关于循环不变式的三件事: 初始化:在循环的第一次迭代之前确实如此。 维护:如果在循环迭代之前为true,则在下一次迭代之前仍为true。 Termination:当循环终止时,不变式为我们提供了一个 我的问题是可以编辑步骤吗?并改为使用以下代码: 初始化:在循环的第一次迭代之后,它是正确的。 维护:如果在循环迭代后为true,则在下一次迭代后 ..
发布时间:2020-06-03 20:59:15 其他开发

快速排序的最大和最小深度

这是CLR(算法简介)的问题,问题如下: 假设每个快速排序级别的拆分比例为1- α至α,其中0 <0。 α≤1/ 2是常数。证明递归树中叶子的最小深度约为-lg n / lgα,最大深度约为-lg n / lg(1-α)。 (不必担心整数舍入。) http://integrator-crimea.com/ddu0043.html 我不知道如何实现此解决方案。根据链接显示,对于1:9的比 ..
发布时间:2020-06-03 20:50:55 其他开发

使用有偏的无偏随机数生成器

您有一个偏向随机数生成器,该生成器生成概率为p的1和概率为(1-p)的0。您不知道p的值。使用此函数生成一个无偏随机数生成器,该生成器生成概率为0.5的1和概率为0.5的0。 注意:此问题是练习题来自Cormen,Leiserson,Rivest,Stein的《算法介绍》。(clrs) 解决方案 事件(p)(1 -p)和(1-p)(p)是等概率的。 在代码中,将它们分别设为0和 ..
发布时间:2020-06-03 19:57:19 其他开发

MAX-HEAPIFY中最坏的情况:“最坏的情况发生在树的底部恰好是一半满时”。

在 CLRS ,第三版,第155页中,给出了MAX-HEAPIFY , “最坏的情况是树的底部恰好是一半满了。” 我想原因是在这种情况下,Max-Heapify必须通过左侧子树“向下浮动”。 但是我无法得到的是“为什么半满”? 如果左子树只有一片叶子,Max-Heapify也可以漂浮下来。那么,为什么不将其视为最坏的情况呢? 解决方案 阅读整个上下文: ..
发布时间:2020-06-03 19:57:14 其他开发

预期值(数学)是什么意思,在quickSort中背后的原因是什么?

我需要帮助来解释 "Clrs"书第157页中的快速排序算法描述 我的问题被覆盖在页面截图中. 这个公式是关于QiuckSort算法的. (逻辑)E [X]后面是什么...我是说作者在开始快速入门时写了这个公式? 给定n = 3,结果为8,可以,但是8在快速排序中的语义是什么? 解决方案 为了理解您引用的书中的分析,您需要了解概率论中的一些概念. 我们要确定quickso ..
发布时间:2020-05-06 11:39:32 其他开发

什么是循环不变?

我正在阅读“算法简介”CLRS。作者正在谈论循环不变量,在第2章(插入排序)中。我不知道这是什么意思。 解决方案 简单来说,循环不变量是一些谓词(条件)这适用于循环的每次迭代。例如,我们来看看一个简单的 $ 循环,如下所示: int j = 9; (int i = 0; i ..
发布时间:2017-04-03 10:50:19 其他开发

红黑树在Clojure中删除CLRS第二版中的Fixup

我正在CLRS第2版之后的间隔树中实现红黑树删除,第四次打印,第288-9页。 错误总结: RB-Delete-Fixup $ b b 如果x和w是标记节点,这是RB-Delete的可能结果,则颜色(left(w))的评估。 RB-Delete-Fixup中的颜色(右(w))在while循环的第一次迭代中遭受空指针异常。 (if(and(=(get-color(get-lef ..
发布时间:2016-11-27 21:57:40 其他开发语言

递归矩阵乘法

我读算法导论由CLRS。本书展示了伪code简单的分而治之的矩阵乘法: N = A.rows 令C是一个新的N×n矩阵 如果n == 1 C11 = A11 * B11 其他分区A,B和C C11 = SquareMatrixMultiplyRecursive(A11,B11) + SquareMatrixMultiplyRecursive(A12,B21) ..
发布时间:2015-11-30 22:11:38 C/C++开发

在CLRS困惑的要求随机内置二叉搜索树的证明

不知道我是否应该把这个数学stackexchange代替,但很好哦。 在CLRS ... 300页 定理12.4 在n个不同的密钥随机内置二叉搜索树的预期高度为O(LGN)。 他们定义3随机变量... “XN”是个密钥随机内置二进制搜索的高度。 “YN”是“指数的高度”,其中YN = 2 ^(XN) “氡”是的根密钥将占据如果密钥的分选,它的排名位置。 和指标随机变量锌,1 ..
发布时间:2015-11-30 21:58:25 C/C++

是树的一个节点认为自己的祖先?

我想知道的共识是在计算机科学方面的“始祖”的定义是什么。 我只问,因为在算法导论,第二版,页。 259有算法树后继(X)这似乎很奇怪的描述。在发现节点的继任者的 X 的 [...]如果将节点的 X 的右子树是空的, X 的有后继的是的,然后的ÿ 的是 X 的,其左子最低的祖先也是的 X 的祖先。 在同一个根具有关键 2 和孩子一个二叉搜索树 1 和 3 , 1 的继任者是它的父 2 。在 ..
发布时间:2015-11-30 21:09:42 C/C++

打印出不相交的节点集合以线性时间

我想通过Cormen等,有做的设置不交数据结构做这个练习算法导论: 假设我们希望添加的操作PRINT-SET(X),这是考虑 一个节点x和印刷品的X的组的所有成员,以任何顺序。说明如何 我们可以在不相交集只添加一个属性到每个节点 森林使打印-SET(X)需要一定的时间线中的成员数 X的设置和其他操作的渐近运行时间 保持不变。假设我们可以在O.1打印组的每个成员/ 时间。 现在,我很肯定所需 ..

红黑树伪code冗余

在算法导论第三版他们有红黑树删除伪code实现。这是... RB-DELETE(T,Z) Y = Z Y型原始颜色= y.color 如果z.left == T.nil X = z.right RB移植(T,Z,z.right) ELSEIF z.right == T.nil X = z.left ..
发布时间:2015-11-30 20:40:54 C/C++

什么是循环不变?

我读“介绍算法”CLRS。与作者都在谈论循环不变,在第2章(插入排序)。我没有什么意思的想法。 解决方案 在简单的话,循环不变的是一些predicate(条件),用来保存循环的每次迭代。例如,让我们来看一个简单的在循环是这样的: 诠释J = 9; 的for(int i = 0;我小于10;我++) j--; 在这个例子中它是真实的(每次迭代)的 I + J == 9 。疲软不变, ..
发布时间:2015-11-30 13:24:47 C/C++