美文网首页
算法-连通性问题

算法-连通性问题

作者: 橡树人 | 来源:发表于2020-05-06 07:43 被阅读0次

连通性问题

问题描述

给定一个由类似p-q的整数对组成的序列,其中每个整数表示一个对象,p-q表示对象p连接到对象q,p和q之间是连通的。

假设对象之间的连通关系具有传递性:假设对象p和对象q之间是连通的,对象q和对象r之间是连通的,则对象p和对象r之间就是连通的。

要求:编写一个过滤序列中无关对的程序。

  • 程序的输入是对象对p-q
  • 如果通过已经看到的数对之间的连通关系不能判断出对象p和对象q之间是连通的,则输出该对象对;
  • 通过已经看到的数对之间的连通关系可以推断出对象p和对象q之间是连通的,则忽略该对象对,并提示继续输入下一个对象对;
  • 输出两个对象之间的所有连接方式;
  • M个连接能保证N个对象之间是连通的吗?

分析:
分析程序需要具备的功能:

程序需要具备的功能:

  • 程序要记录其所看到的对象对;
  • 程序要能判定一个新的对象对是否连通;

目标:将连通问题的求解过程变成如何定义表示抽象集合的数据结构,及开发高效利用这个数据结构的查找和合并算法

分析程序执行的基本操作:

每当出现一个新的对象对时,
首先,需要判定该对象对是否表示一个新的连接;
然后,将该新的连接合并到已得到的对象的连通关系中,使其能够对新输入的对象对进行检查;

思路:
将这两个步骤封装成抽象操作,

  1. 查找操作
  2. 合并操作

相关文章

  • 《算法》笔记 2 - 动态连通性问题

    动态连通性问题 实现通用代码Quick-Find算法Quick-Union算法加权Quick-Union算法 动态...

  • 算法-连通性问题

    连通性问题 问题描述 给定一个由类似p-q的整数对组成的序列,其中每个整数表示一个对象,p-q表示对象p连接到对象...

  • union-find 算法

    1、前言 union-find 为并查集算法,原本的用途是判断图的连通性问题,连通性是指图中的两个节点是否相连。说...

  • Union-Find算法

    动态连通性问题中,如何判断触点是否相连接,可以抽象表述为如何编写程序来过滤掉序列中所有无意义的整数对。连通性问题只...

  • 动态连通性问题之快速查找算法笔记

    快速查找(贪心算法) 目的:通过并查集解决动态连通性问题 定义: 在一个N个元素的数组中,当且仅当 p、q的id相...

  • union-find算法实现(连通性问题)

    package com.snail.basic; /* 触点-->对象称之为触点 分量-->等价类称为连通分量简称...

  • 强连通算法

    前言:我们伟大的BAT承载了多少程序员的梦想,到底有多少人的向往... 然而这个“T”的面试也是经常不走寻常路,最...

  • 克鲁斯卡尔Kruskal算法使用并查集+优先级队列实现

    kruskal算法 克鲁斯卡尔算法是一种用来寻找连通图中最小生成树的算法。 连通图:在无向图中,若任意两个顶点vi...

  • Union-Find

    用于解决动态连通图的连接性问题 问题描述 给定由N个对象构成的集合,并告知哪些对象之间是连通的,由此判断某两个对象...

  • 大数据算法系列13:最小生成树算法

    一. Kruskal算法 二. Prim算法 普里姆(Prim)算法,也是求加权连通图的最小生成树的算法。 基本思...

网友评论

      本文标题:算法-连通性问题

      本文链接:https://www.haomeiwen.com/subject/vtxightx.html