![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法导论 习题解答
文章平均质量分 86
越努力越幸运の美丝
这个作者很懒,什么都没留下…
展开
-
算法导论 22.2 广度优先搜索 习题解答
综上所述,这证明了存在一组树边E',使得对于每个结点v,图G(V, E')中从源结点s到结点v的唯一简单路径也是图G中的一条最短路径,但无论如何排列邻接链表的顺序,边集\(E'\)都不能通过在图G上运行BFS来获得。因此,通过构建 E' 集合并证明其路径是最短路径,我们可以得出存在一组树边 E',使得对于每个结点 v,图 G(V, E') 中从源结点 s 到结点 v 的唯一简单路径也是图 G 中的一条最短路径。这里,我们使用BFS的过程,但不考虑具体的 u.d 值,只关注结点的访问顺序。原创 2023-11-16 22:17:46 · 172 阅读 · 1 评论 -
算法导论 第22章 基本的图算法 22.1 图的表示 习题解答
这是因为对于每个节点v,对其邻接链表中的每个邻接节点u,以及u的邻接链表中的每个节点w,都会执行一次操作,总的时间复杂度是边数和节点数的乘积。对于邻接链表表示的有向图,计算每个节点的出度需要遍历图中的每个节点,然后对于每个节点,遍历其邻接链表,统计邻接节点的数量即为该节点的出度。因此,出度的计算时间复杂度为O(V + E),其中V是节点的数量,E是边的数量。对于有向图的入度,需要对图中的每个节点进行遍历,然后再对每个节点的邻接链表进行遍历,统计指向该节点的边的数量即为该节点的入度。原创 2023-11-16 20:42:39 · 472 阅读 · 1 评论 -
算法导论 11.4 开放寻址法 习题解答
11.4 开放寻址法。原创 2023-11-13 10:01:21 · 164 阅读 · 0 评论 -
算法导论 21.2 不相交集合的链表表示 习题解答
具体操作如下:1. 将第二个链表(S2)插入到第一个链表(S1)的头部和元素之间。2. 存储指向S1的第一个元素的指针。3. 对于S2中的每个元素x,将x的头指针设置为S1的头指针。4. 当达到S2的最后一个元素时,将其next指针设置为S1的第一个元素。这个方法的关键是始终让S2充当较小的集合,这有助于加权合并启发式策略的性能。通过这种方式,“拼接”两个链表的操作在渐近时间上保持线性,不影响 `UNION` 操作的性能。原创 2023-11-14 10:29:13 · 61 阅读 · 1 评论 -
算法导论 11.2 散列表 习题解答
11.2 散列表。原创 2023-11-12 16:55:36 · 132 阅读 · 1 评论 -
算法导论 第21章 用于不相交集合的数据结构 21.1 不相交集合的操作 习题解答
在这一时刻,算法将合并包含 u 和 v 的集合,创建一个包含 u 和 v 的联合集合。由于算法按照特定顺序处理边,使得 u 和 v 最终在相同的连通分量中的唯一方式是存在一系列按顺序处理的边,连接了它们。在CONNECTED-COMPONENTS算法中,对于每个顶点,FIND-SET操作都会被调用一次,而对于每条边,UNION操作会被调用两次。反之,如果在处理完所有边后,u 和 v 在相同的集合中,那么必然存在一系列边连接它们,而算法在处理这些边的过程中将合并包含 u 和 v 的集合。原创 2023-11-14 09:08:06 · 79 阅读 · 1 评论 -
算法导论 11.3 散列函数 习题解答
其中概率是相对从函数簇H中随机抽取的散列函数h而言的。试证明:一个e全域的散列函数簇必定满足:使用反证法证明。反证法的思路:假设存在一个 e 全域的散列函数簇,但不满足上述不等式。假设条件:假设 e < 1/|B|-1/|U|。原创 2023-11-12 19:35:32 · 126 阅读 · 1 评论 -
算法导论 第11章 散列表 11.1 直接寻址表 习题解答
如果元素的关键字范围很大,可能需要较大的位向量,这会占用较多的空间。在直接寻址表中,可以将其视为一个链表的数组,其中数组的每个槽都为每个关键字维护一个双向链表,每个节点都是该链表中的元素,包含了关键字对应的卫星数据,并通过双向指针连接到链表中的前一个和后一个节点。举例来说,考虑一个包含学生信息的动态集合,其中每个学生记录包括学生的学号作为关键字,而与之相关联的姓名、成绩、出生日期等信息就是卫星数据。这样的情况下,位向量中的每个位仅用于表示元素的存在或不存在,而不存储与之相关的卫星数据。原创 2023-11-12 09:31:26 · 179 阅读 · 1 评论