• 普林斯顿公开课 算法1-7:并查集基本概念


    本节讲的是并查集的基本概念。


    算法的开发步骤


    1. 对问题进行数学建模

    2. 寻找一个可以解决这个问题的算法

    3. 执行算法检測速度和内存是否符合要求

    4. 假设达不到要求。找出原因

    5. 寻找一种方法来解决这个问题

    6. 循环步骤,直到惬意为止


    以上就是算法开发比較科学的方法。

    算法开发完毕之后须要进行数学分析。


    并查集问题


    给定N个物体。能够提供两种操作,一种是合并操作。一种是查找操作。合并操作就是将两个节点进行连接,查找操作就是推断两个节点是否连接在一起。


    应用中的物体类型


    实际应用中,并查集算法能够支持各种各样的物体类型,比方:

    • 图片中的像素

    • 网络中的计算机

    • 社交网络中的用户

    • 计算机芯片中的晶体管

    • 数学集合中的元素

    • 程序中的变量名称

    • 化合物中的金属离子


    实际应用中,为了避免无关因素的干扰,通常须要将详细的物体进行编号,在计算的时候仅仅须要对整数进行操作就可以。


    连接的性质


    节点之间的连接具有三种性质:

    • 反射性:每一个节点和自己总是相连的

    • 对称性:假设p连接q,q也连接p

    • 传递性:假设p连接q,q连接r,那么p也连接r


    连接部件


    概念:相连的节点所组成的集合。


    下图展示了连接部件:



    操作


    并查集提供两种操作:

    • 查找操作:检測两个节点是否相连

    • 合并操作:将两个节点进行连接


    目标


    并查集算法须要实现下面目标:

    • 对象的数量N能够很大

    • 操作次数M能够很大

    • 查找和合并两种操作能够任意调用

  • 相关阅读:
    java IO流之详细总结
    位运算了解与复习多线程
    java 常见面试题总结(一)
    复习集合框架
    【面试题】java中高以上必会技能
    python-项目流程分析及优化查询方法
    python-day97--django-ModelForm
    python-day97--git协同开发
    python-day96--git版本控制
    python-day91--同源策略与Jsonp
  • 原文地址:https://www.cnblogs.com/blfshiye/p/5115568.html
Copyright © 2020-2023  润新知