随笔分类 - 数据结构
ing
摘要:迪杰斯特拉(Dijkstra)算法 迪杰斯特拉算法求得是原点到各个点之间的距离,不是任意两点间的距离,各点之间的权值不能为负,否则算法不适用 思路:数组dis:表示起点到各点的距离,maps表示各个点之间的距离,如果不相通初始化为无穷,vis表示从起点到该点的距离是否确定 将起点写入相应的数组中,d
阅读全文
摘要:克鲁斯卡尔算法 适合于求边稀疏的网的最小生成树 思路: 将每条边的权值按从小到大的顺序排列,然后遍历,将边放回图中,如果此时的连线不能形成环,则继续,否则将此边丢弃,直到放进去n-1条边(n个点连通需要n-1条边)结束 用结构体存储顶点和边,sort排序 struct bian//存储边的信息 {
阅读全文
摘要:并查集 并查集运用树的结构,通过判断每个点的最终双亲是否相同来判断是不是在一个集合中 一般步骤: 1.查找:查找一个点的最终双亲 递归 2.合并:如果两个相通点的双亲相同,说明已经在一个集合中,不需要合并,不同则将两个集合合并 例题:村村通 给定n个村庄和m条已经通的路,问还需要在休几条路 思路:将
阅读全文
摘要:问题:在主串中寻找字串的位置 朴素的模式匹配算法 简单的说,就是对主串的每一个字符作为字串的开头,与要匹配的字符串进行匹配。对主串做大循环,每个字符开头做字串的长度的小循环,直到匹配成功或者全部遍历为止。 让我们来分析一下,最好的情况是什么?那就是第一开始就成功,时间时间复杂度为O(1) ;最坏呢,
阅读全文

浙公网安备 33010602011771号