1.Dynamic Connectivity(动态连接)

来源:互联网 发布:科创论坛 知乎 编辑:程序博客网 时间:2024/06/05 07:03

怎么发现一个有用的算法?

我们平时发现一个算法一般会遵循一下这几个步骤:

  1. 遇到问题,试图发现这个问题的主要元素。
  2. 然后找到解决这个问题的算法
  3. 第一次写的算法(也许很快,也许很慢)
  4. 但一般第一次写的算法都比较糟糕,这时候就找方法解决为什么会那么糟糕了
  5. 找到使得算法变好的关键点
  6. 不断迭代

Dynamic Connectivity

寻找有没有连接两个点的路径,如下:
这里写图片描述

你发现又连接8-9的路径,但是没有连接0-7的路径,要是想连接0-7的话,可以连接0-5,6-1,2-7,这就连接上0-7了。
这里写图片描述
一看,你发现连接0-1就可以直接连接0-7了,这样貌似的效率要更高。
其实很多时候,我们的算法就是干的这么一些事,为了让我们运行的效率更高,消耗更少的计算机资源。

事实上,很多时候,计算机做的就是连接,比如排序算法,就是通过整数索引进行元素与索引的连接,进而完成一些操作。

连接相关的定义还有:
这里写图片描述

很多时候,我们会在一些没有关系连接的部分建立连接,形成更加强大的组块。但现实是,往往连接的都是一些非常大的数,这就需要我们的算法足够的高效。
这里写图片描述

原创粉丝点击