Data Structure And Algorithm Questions 下
接上文:
https://blog.csdn.net/Jifu_M/article/details/112956663
19. Dijkstra算法寻找最短路径
假设我们使用Dijkstra算法在上面面的图中找到顶点A的最短路径。顶点插入到Selected set的顺序是什么?
最短路径算法的介绍可以看我的这篇文章:
https://blog.csdn.net/Jifu_M/article/details/112909339
答:
A D E C B F
判断每个节点到A的最短路径,然后依次插入到Selected set即可。
下图位C,B,F的最短距离,
//F也可以是1+3。
20. 插入数据到2-4树中
向下图2-4树中插入6
答:
2-4树的介绍可以看我的这篇文章:
https://blog.csdn.net/Jifu_M/article/details/112841205
将6插到这里出现了5-node,不符合树的定义。
有两种方法解决5-node:
- 4升上去,3下来到2旁边。
- 7升上去,8下来到9旁边。
插入后的图为:
或者:
// 灵魂画手,希望你们能看懂。
21. 从2-3-4树中删除数据
删除1:
答:
首先,由于’ 1 ‘不在叶节点中,将’ 1 '与它后面紧跟着的2交换,使其进入叶节点。
1在叶节点了,直接删除1,1的那个叶节点因此变为空节点,不符合树的定义。因此,我们要把3降到这个节点,把右边的兄弟节点的4升上去:
大功告成!
22. 动态编程相关术语:
- Optimal substructure and overlapping subproblems
- Memoization
- Objective function
答:
- 最优子结构是通过构造重叠子问题的最优解来找到问题的最优解的性质。
- Memoization是一种技术,它将先前计算的值存储起来,以便这些值可以用于快速解决其他子问题。
- 目标函数是计算我们想要的XX最小化或最大化的结果。
23. 基数排序
基数排序是否适用于基于学生编号的学生记录排序?
答:
是的。
因为学号是整数,有固定的位数。
基数排序最适用于以下情况:
- 这些数字是由一组数字组成的,并且
- 每个数字都能装进单个单词的存储器中。
学号满足上述条件,因此基数排序是合适的。
24. 对单词进行基数排序
单词为:
COW, DOG, SEA, RUG, ROW, MOB, JOB, CAT.
答:
没什么好说的,最后基数排序的结果是由三层的排续后得出的。
比较一下直接对首字母排序和基数排序的结果区别即可理解。
25. Chaining的复杂度
假设我们将一组n个键存储到一个大小为m的哈希表中。使用Chaining,最坏情况下的搜索时间(复杂度)是多少?
答:
O(n)当所有哈希键都映射到同一个条目,从而产生一个包含所有数据的链表时,就会发生这种情况。
26. 完美哈希
完美哈希是可实现的吗?
答:
是的。
举个例子:
假设一个键可以用一系列符号来表示,其中总共有p个不同的符号。我们可以给每个符号分配一个从0到(p-1)的数字。
Word为[x1,x2,x3…xn]其中x1,x2,x3…xn是符号。
那么hash (x)就是一个完美的哈希函数。
27. 绘制AVL树
插入以下值:2、1、4、5、9、3、6。
答:
28. 在AVL树中删除值
删除53:
答:
删除节点53将使树的根节点处于不平衡状态。通过向右旋转根节点并将子树“12”重新附加到节点“14”,树被重新平衡。
29. Dijkstra’s最短路径算法
S到T使用Dijkstra’s最短路径算法经过的顶点:
答:
SACET
当Dijkstra的最短路径算法到达顶点C时,‘D’和‘E’的距离值分别为7和6。所以下一个选择的顶点是E然后是T。
29. 加权图最短路径
在一个加权图中,假设使用最短路径算法正确地计算出从源’s’到目标’t ’ '的最短路径。
如果我们将每条边的权值增加1,最短路径是否始终保持不变?
答:
否,最短路径会变
假设:
A-D权值为4
A-B-C-D的权值是1+1+1=3
最短路径为A-B-C-D。
如果每条边权值+1:
A-D权值为5
A-B-C-D的权值是2+2+2=6
最短路径变为A-D了。
30. Dijkstra算法和Bellman Ford算法
假设给定一个图,所有边的权值都为正,由Dijkstra算法和Bellman Ford算法得到的最短路径可能不同,但路径权值总是相同的。这个说法是否正确?
答:
是的。
两种算法都保证产生相同的最短路径权值,但如果有多个最短路径,Dijkstra会根据贪婪策略选择最短路径,Bellman-Ford会根据松弛顺序选择最短路径。因此,两个最短路径树可能是不同的。