链表查找算法,HDFS 数据节点宕机处理

用户头像
dony.zhang
关注
发布于: 2020 年 07 月 29 日
链表查找算法,HDFS数据节点宕机处理
1. 有两个单向链表(链表长度分别为 m,n),这两个单向链表有可能在某个元素合并,如下图所示的这样,也可能不合并。现在给定两个链表的头指针,在不修改链表的情况下,如何快速地判断这两个链表是否合并?如果合并,找到合并的元素,也就是图中的 x 元素。请用(伪)代码描述算法,并给出时间复杂度和空间复杂度。



int diff = listASize - listBSize;
int compareSize ;
int listAStartIndex;
int listBStartIndex;
if(diff >= 0) {
compareSize = listBSize;
listAStartIndex = diff;
listBStartIndex = 0;
} else {
compareSize = listASize;
listAStartIndex = 0;
listBStartIndex = -diff;
}
for(int i = 0; i < compareSize; i++) {
if(listA.get(listAStartIndex) .equals(listB.get(listBStartIndex))) {
System.out.println(String.format("第%d节点相交,节点:%s", i,listB.get(listBStartIndex)));
break;
} else {
listAStartIndex++;
listBStartIndex++;
}
}



时间复杂度:O(n) , 长度短的链表的长度

空间复杂度:O(1),增加存储中间几个变量的空间



2. 请画出 DataNode 服务器节点宕机的时候,HDFS 的处理过程时序图。





参考:https://cloud.tencent.com/developer/article/1043733

发布于: 2020 年 07 月 29 日 阅读数: 132
用户头像

dony.zhang

关注

专注成就专业 2018.07.06 加入

程序员

评论

发布
暂无评论
链表查找算法,HDFS数据节点宕机处理