- 博客(79)
- 收藏
- 关注
原创 算法导论答案译文导航
算法导论第一章练习参考答案(1) - 1.1-1.2https://blog.csdn.net/TXLTF/article/details/131675589算法导论第二章练习参考答案(2) - 2.1-2.3https://blog.csdn.net/TXLTF/article/details/131677038算法导论第二章思考题参考答案(3)https://blog.csdn.net/TXLTF/article/details/131699788算法导论第三章练习参考答案(4) - 3.1-3.2ht
2024-03-15 21:22:59 3370
原创 数据结构导航 -- 38篇
顺序表代码-C++-CSDN博客单链表代码-C++-CSDN博客双链表代码-C++-CSDN博客有序表概述-CSDN博客栈代码数组实现-C++-CSDN博客栈代码链表实现(链栈)-C++-CSDN博客队列与环形队列顺序存储代码数组实现-C++-CSDN博客队列与环形队列链式存储代码链表实现-C++-CSDN博客串代码实现-C++_代码串-CSDN博客链串代码实现-C++-CSDN博客串模式匹配的三种实现-CSDN博客稀疏矩阵三元组表示-CSDN博客稀疏矩阵的十字链表数据声明-CSDN博客树的三种存储结构-C
2024-03-13 22:18:12 760 2
原创 Redis简单介绍及数据结构
后来,随着访问量的提升,使用关系型数据库的Web站点在性能上都多少出现了一些瓶颈,而瓶颈的源头一般是在磁盘的I/O上。随着互联网技术的进一步发展,各种类型的应用层出不穷,这导致在当今云计算、大数据盛行的时代,对性能有了更多的需求。:Redis将数据存储在内存中,读取和写入数据的操作都是在内存中完成的,这使得Redis具有极高的读写性能。是列表键和哈希键的底层实现之一。是集合键的底层实现之一,当一个集合只包含整数值元素,并且这个集合的元素数量不多时,Redis就会使用整数集合作为集合键的底层实现。
2024-03-24 18:44:11 1663
原创 算法导论第十四章思考题参考答案(27)
b.我们将给出一个简单的解决方案来解决这个问题,它的运行时间为O(nlg (n)),它不会增加红黑树,尽管这是提示所建议的。然后按如下步骤进行:如果你刚刚打印了第k个值,其秩为r,则从树中删除该节点,那么要打印的第(k+ 1)值的秩为r−1 + m(n) mod (n−k)。a.假设我们有一个最大重叠点p,然后,只要我们想象移动点p但不经过任何区间的任何端点,那么我们不会改变包含p的区间的数量,所以,我们只是向右移动,直到我们到达某个区间的端点,然后,我们有一个最大重叠点,也就是区间的端点。
2024-03-24 18:43:36 256 2
原创 算法导论第十四章练习参考答案(26) - 14.1-14.3
呼叫顺序为:然后,我们得到返回的节点(键为20)是T.root.left.right.left.rightOS-RANK(T,x)的运算如下:r被设为0,y被设为x。在while循环的第一次迭代时,y被设为键为38的节点。在第二次迭代中,r增加到2,y设置为键为30的节点。在第三次迭代中,y被设置为键为41的节点。在第四次迭代中,r增加到15,y设置为键为26的节点,即根节点。这将打破while循环,并返回第15级。期望的结果是OS-SELECT(T,OS-RANK(T,x)+i)。
2024-03-24 18:42:30 1785
原创 算法导论第十三章思考题参考答案(25)
所以我们至少需要Ω(n)的时间和额外的空间。设T .root = x, x. left = y, y.p = x, x.right = T2.root和T2.root.p = x, Ty的每个元素都在T1中,T1只包含小于x的元素,T2的每个元素都大于x,由于Ty和T2都具有二叉搜索树的性质,T也具有二叉搜索树的性质。同样,在第二个while循环中只会发生一次旋转因为当我们这样做的时候,我们会降低那里的子树的高度,这意味着它会回到原来的高度,所以它的所有祖先的高度都是不变的,所以,不需要进一步的平衡。
2024-03-19 10:51:59 896
原创 算法导论第十三章练习参考答案(24) - 13.1-13.4
当z更新时,它要么是根,要么是根的子节点。因为每个红色节点需要有两个黑色的子节点,我们唯一的希望就是相对于我们的黑色内部节点的数量,得到大量的内部红色节点,就是让每个叶节点的父节点都是一个红色节点。因为我们是从红黑树中删除的,所以y.p的另一个子结点(在第14行调用RB-TRANSPLANT时成为x'的兄弟结点)必须是黑色的,所以x是x.p的唯一的子结点(是红色的)。在从根到叶的路径中,任意两个黑节点之间最多有一个红节点,所以这种树的最大高度是2k+1,从根到叶的每条路径都是红节点和黑节点交替出现。
2024-03-19 10:43:53 671
原创 算法导论第十二章思考题参考答案(23)
树的根的单词必然在它的左子树或右子树的任何单词之前,因为它既短,又是这些树中每个单词的前缀。为了非正式地计算期望的运行时间,只需注意在随机选择时,我们将大约有一半的时间选择左边,所以,树将大致平衡,所以,我们有深度大约是 lg(n),所以期望的运行时间将是nlg(n)。每个非根节点在到达该节点的路上都有一个来自根的第一条边的贡献,这条路径上的所有其他边都是通过查看以原始根的子树为根的两个子树中的边来计数的。然后,我们知道所有较小的元素都在左边而所有较大的元素都在子元素的右边。点的二叉树的个数,我们首先从。
2024-03-18 14:09:45 849
原创 算法导论第十二章练习参考答案(22) - 12.1-12.4
接下来观察 y.left 必须是 x 的祖先,因为如果它不是,那么 y.right 将是 x的祖先,这意味着 x > y.最后,假设 y 不是 x的最低祖先,它的左子也是 x的祖先,设 z 表示这个最低祖先。那么 z 一定在 y 的左子树中,这意味着 z < y,这与 y 是 x的后继结点的事实相矛盾。所以,它一定没有左子元素。首先我们确定 y 一定是 x的祖先,如果 y 不是 x的祖先,则设 z 表示 x和 y的第一个共同祖先,根据二叉搜索树的性质,x < z < y,因此 y 不能是 x的后继。
2024-03-18 14:06:42 884
原创 SIMA 可扩展可指导多世界代理 - Google DeepMind
更重要的是,一个接受过除一款游戏以外的所有游戏训练的智能体平均而言,在这场看不见的游戏中的表现几乎与专门接受过该游戏训练的智能体一样好。谷歌DeepMind还展示了SIMA在多款游戏中接受训练后,在未见过的游戏中的表现几乎与专门针对那款游戏训练的Agent相同,这显示了SIMA超越其训练范围的泛化能力。最终,SIMA Team的研究正在朝着更通用的人工智能系统和代理的方向发展,这些系统和代理能够理解并安全地执行各种任务,从而对在线和现实世界中的人们有所帮助。这个简单的界面是人类使用的,这意味着。
2024-03-17 12:30:57 1159
原创 算法导论第十一章思考题参考答案(21)
当 n→∞时,除最后一项外的所有项都趋于 0,因此对于 N 的某个固定值, 选择 c = 4 适用于所有 n > N,设 ci 表示 n = i 时适用的值,然后通过令 ci= maxi(ci, 4)我们得到 c 的期望值,通过(b)部分,我们得到 Pk0≤nQk0< n/n^3 = 1/n^2。b.碰撞的概率是1/p,所以H是全称的。因为 i < i',我们有 i+ i' + 1≤ 2i' < 2 m,所以,我们必须有 i+ i' + 1 = 0,这与我们假设这样 的 i 和 i' 存在的假设相矛盾。
2024-03-17 11:58:16 617
原创 算法导论第十章思考题参考答案(19)
因为调用MIN-HEAPIFY的i的值总是在增加,而且我们不需要多次遍历元素,所以运行时间在列表的长度上是线性的。要将链表实现为堆,我们可以想象通常的二进制堆的数组实现,其中第i元素的子元素是2i和2i + 1。a.如果原始版本的算法只需要t次迭代,那么,我们知道它最多只能随机跳过列表以获得所需的值,因为原始while循环的每次迭代都可能是随机跳转,然后是通过链表的正常步骤。h.如果我们没有不同的键值,那么,我们可以随机选择一个比之前更远的元素,但不会跳转到它,因为它与我们当前所在的键值相同。
2024-03-16 10:44:36 716
原创 算法导论第十章练习参考答案(18) - 10.1-10.4
我们实现UNION的方式如下:设置L1.nil.prev.next = L2.nil.next和L2.nil.next.prev = L1.nil.prev,使得L1的最后一个元素紧跟着L2的第一个元素。然后设置l1.nil.prev = L2.nil.prev.和L2.nil.prev.next = L1.nil,所以L1.nil是包含L1和L2中所有元素的双链表的哨兵。要查找节点的所有子节点,首先查找x. left,然后跟踪“右”指针,直到布尔值的奇偶校验发生变化,忽略最后一个节点,因为它将是x。
2024-03-16 10:41:58 1159
原创 算法导论第九章思考题参考答案(17)
c.由上一部分可知,如果i是常数,那么O(T(2i) lg(n/i))就变成了T(lg(n))。那么Ui(n) = n + O(T(2i) lg(n/i)) = n + O(lg(n))。d,从c部分,我们把n/k代入i得到Ui(n) = n+O(T(2i) lg(n/i)) = n+O(T(2n/k) lgk)。b.堆化耗时nlg (n),每次提取耗时lg(n),因此,总运行时间为O((n + i) lg(n))a.排序耗时nlg (n),列出它们耗时i,所以总运行时间是O(nlg (n) + i)
2024-03-15 21:19:20 761
原创 算法导论第九章练习参考答案(16) - 9.1-9.3
注意,如果图中存在从x到i的路径,则A[i]是i−1个较小元素中的一个,如果图中存在从i到x的路径,则A[i]是n−i个较大元素中的一个。设n < k时T(n) < cn,则m≥k时,T(m)≤T(m/7) + T(10m/14) + O(m)≤cm(1/7 + 10/14) + O(m)。在不失一般性的前提下,假设n和k是2的幂。换句话说,P(Xk = a| max(k−1,n−k) = m) = P(Xk = a)对于a = 0,1和m = k−1,n−k,所以Xk和max(k−1,n−k)是独立的。
2024-03-15 21:15:50 1165
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人