很高兴能和大家一起共同学习算法导论这本书.笔者将在业余时间把算法导论后面的题解以博文的形式展现出来希望能得到大家的支持谢谢.如果有可能我会做一些教学视频免费的供大家观看. 练习题选自算法导论中文第三版第6页中的练习. 1.1-1 给出现实生活中需要排序的一个例子或者现实生活中需要计算凸壳的一个例子. 这个问题有俩个子问题.我一一解答: (1) 首先是排序,日常需要排序的地方很多,例如今日微博热搜等等这个不用细说了. (2)但是关于第二个问题我需要多写一点. 第一这本书的翻译的地方有误,凸壳在这里…
(搬运)<算法导论>习题解答 Chapter 22.1-1(入度和出度) 思路:遍历邻接列表即可; 伪代码: for u 属于 Vertex for v属于 Adj[u] outdegree[u]++; indegree[v]++; 源代码: package C22; import java.util.Iterator; public class C1_1 { static int[] indegree; static int[] outdegree; static Adjacent_List…
开始学习<算法导论>了,虽然是本大部头,可能很难一下子看完,我还是会慢慢地研究的. 课后的习题和思考有些是很有挑战性的题目,我等蒻菜很难独立解决. 然后发现了Google上有挺全的algorithmssolution的site (目测by xiazdong大神). 但竟然要FQ实在是难以接受. 于是我决定开坑!把它们慢慢地搬运过来,当然这之中我会从中学习并好好研究的. 我会慢慢更新搬运过来的地址的,这是一个大坑,请容我慢慢填. Chapter 22.1-1(入度和出度) Chapter 22.…
一.邻接矩阵实现 思路:如果是邻接矩阵存储,设邻接矩阵为A,则A*A即为平方图,只需要矩阵相乘即可: 伪代码: for i=1 to n for j=1 to n for k=1 to n result[i][j]+=matrix[i][k]*matrix[k][j]; 算法复杂度 两个n维数组相乘,因此复杂度为O(V^3),当然可以通过Strassen算法稍加改进. 扩展:这种方法的作用是比如求u到v路径长度为k的路径数目,只需要求A^k,然后[u][v]即可. 算法正确性分析 命题:给定两点…
一般散列表都与B+树进行比较,包括在信息检索中也是. 确定某条边是否存在需要O(1). 不足: (1)散列冲突. (2)哈希函数需要不断变化以适应需求. 另外:B+树.(见第18章) 与散列表相比的不足: (1)插入需要O(lgn) (2)树要保持平衡. (原文点此,索引目录.感谢xiazdong君 && Google酱.这里是偶尔做做搬运工的水果君(^_^) )…
主对角线:出度+入度 其他:arr[i][j]=-n,则i与j之间有n条边. 证明: (原文点此,索引目录.感谢xiazdong君 && Google酱.这里是偶尔做做搬运工的水果君(^_^) )…
思路:设置两个游标i指向行,j指向列,如果arr[i][j]==1,则i=max{i+1,j},j++:如果arr[i][j]==0,则j=max{i+1,j+1}. 伪代码: has_universal_sink() for i=1 to N //对角线检查是否全是0 if A[i][i]==1 return false; i=1,j=2 while(i<=N && j<=N) if(A[i][j]==1) i=max{i+1,j} j++ else j=max{i+1,j+…
思路:重开一个新图,按着邻接列表的顺序从上到下遍历,每遍历一行链表前,清空visited数组,如果没有访问过这个元素,则加入新图,如果已经访问过了(重边),则不动. 伪代码: 复杂度:O(V+E) for each u 属于 Vertex visited[u] = false; for u 属于 Vertex visited[u] = true; for v 属于 Adj[u] if(!visited[v]) Adj1[u].insert(v); visited[v] = true; for v…
一.邻接表实现 思路:一边遍历,一边倒置边,并添加到新的图中 邻接表实现伪代码: for each u 属于 Vertex for v 属于 Adj[u] Adj1[v].insert(u); 复杂度:O(V+E); 输入: 3 3 a b b c c a 源代码: package C22; import java.util.Iterator; public class C1_3{ public static Adjacent_List getTransposeGraph(Adjacent_Li…
链表如图: 矩阵: 1 2 3 4 5 6 7 1 0 1 1 0 0 0 0 2 1 0 0 1 1 0 0 3 1 0 0 0 0 1 1 4 0 1 0 0 0 0 0 5 0 1 0 0 0 0 0 6 0 0 1 0 0 0 0 7 0 0 1 0 0 0 0 (原文点此,索引目录.感谢xiazdong君 && Google酱.这里是偶尔做做搬运工的水果君(^_^) )…