<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>quick-find &#8211; 编码无悔 /  Intent &amp; Focused</title>
	<atom:link href="https://www.codelast.com/tag/quick-find/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.codelast.com</link>
	<description>最优化之路</description>
	<lastBuildDate>Mon, 27 Apr 2020 18:05:42 +0000</lastBuildDate>
	<language>zh-Hans</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>
	<item>
		<title>[原创] union-find算法中的quick-find算法的复杂度</title>
		<link>https://www.codelast.com/%e5%8e%9f%e5%88%9b-union-find%e7%ae%97%e6%b3%95%e4%b8%ad%e7%9a%84quick-find%e7%ae%97%e6%b3%95%e7%9a%84%e5%a4%8d%e6%9d%82%e5%ba%a6/</link>
					<comments>https://www.codelast.com/%e5%8e%9f%e5%88%9b-union-find%e7%ae%97%e6%b3%95%e4%b8%ad%e7%9a%84quick-find%e7%ae%97%e6%b3%95%e7%9a%84%e5%a4%8d%e6%9d%82%e5%ba%a6/#respond</comments>
		
		<dc:creator><![CDATA[learnhard]]></dc:creator>
		<pubDate>Wed, 05 Aug 2015 05:54:05 +0000</pubDate>
				<category><![CDATA[Algorithm]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[原创]]></category>
		<category><![CDATA[quick-find]]></category>
		<category><![CDATA[union-find]]></category>
		<category><![CDATA[复杂度]]></category>
		<guid isPermaLink="false">http://www.codelast.com/?p=8511</guid>

					<description><![CDATA[<p style="margin: 5px 0px; clear: both; font-family: sans-serif; font-size: 16px;">
	<br />
	union-find算法用于检测动态连通性，例如计算机网络中的两个节点是否连通，在一个特定圈子里的两个人是否有间接的朋友关系，等等。</p>
<p style="margin: 5px 0px; clear: both; font-family: sans-serif; font-size: 16px;">
<span id="more-8511"></span></p>
<p style="margin: 5px 0px; clear: both; font-family: sans-serif; font-size: 16px;">
	quick-find算法是union-find算法的众多实现中最简单也最没有效率的一种，它的主要实现如下：</p>
<section class="output_wrapper" id="output_wrapper_id" style="font-size: 16px; color: rgb(62, 62, 62); line-height: 1.6; letter-spacing: 0px; font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">
<pre style="font-size: inherit; color: inherit; line-height: inherit; margin-top: 0px; margin-bottom: 0px; padding: 0px;">
<code class="java language-java hljs" style="margin: 0px 2px; line-height: 18px; font-size: 14px; letter-spacing: 0px; font-family: Consolas, Inconsolata, Courier, monospace; border-radius: 0px; color: rgb(169, 183, 198); background: rgb(40, 43, 46); padding: 0.5em; overflow-wrap: normal !important; word-break: normal !important; overflow: auto !important; display: -webkit-box !important;"><span class="hljs-function" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(248, 35, 117); word-wrap: inherit !important; word-break: inherit !important;"><span class="hljs-keyword" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; overflow-wrap: inherit !important; word-break: inherit !important;">public</span>&#160;<span class="hljs-keyword" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; overflow-wrap: inherit !important; word-break: inherit !important;">int</span>&#160;<span class="hljs-title" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(165, 218, 45); word-wrap: inherit !important; word-break: inherit !important;">find</span><span class="hljs-params" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(255, 152, 35); word-wrap: inherit !important; word-break: inherit !important;">(<span class="hljs-keyword" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(248, 35, 117); word-wrap: inherit !important; word-break: inherit !important;">int</span>&#160;p)</span>&#160;</span>{
&#160;&#160;<span class="hljs-keyword" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(248, 35, 117); word-wrap: inherit !important; word-break: inherit !important;">return</span>&#160;id[p];
}

<span class="hljs-function" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(248, 35, 117); word-wrap: inherit !important; word-break: inherit !important;"><span class="hljs-keyword" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; overflow-wrap: inherit !important; word-break: inherit !important;">public</span>&#160;<span class="hljs-keyword" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; overflow-wrap: inherit !important; word-break: inherit !important;">void</span>&#160;<span class="hljs-title" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(165, 218, 45); word-wrap: inherit !important; word-break: inherit !important;">union</span><span class="hljs-params" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(255, 152, 35); word-wrap: inherit !important; word-break: inherit !important;">(<span class="hljs-keyword" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(248, 35, 117); word-wrap: inherit !important; word-break: inherit !important;">int</span>&#160;p,&#160;<span class="hljs-keyword" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(248, 35, 117); word-wrap: inherit !important; word-break: inherit !important;">int</span>&#160;q)</span>&#160;</span>{
&#160;&#160;<span class="hljs-comment" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(128, 128, 128); word-wrap: inherit !important; word-break: inherit !important;">//&#160;查找点&#160;p&#160;和点&#160;q&#160;在id数组中的值，从而可以接着判断它们是否在相同的连通分量中</span>
&#160;&#160;<span class="hljs-keyword" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(248, 35, 117); word-wrap: inherit !important; word-break: inherit !important;">int</span>&#160;pID&#160;=&#160;find(p);
&#160;&#160;<span class="hljs-keyword" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(248, 35, 117); word-wrap: inherit !important; word-break: inherit !important;">int</span>&#160;qID&#160;=&#160;find(q);

&#160;&#160;<span class="hljs-comment" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(128, 128, 128); word-wrap: inherit !important; word-break: inherit !important;">//&#160;p,&#160;q已经在相同的分量中，无需任何操作</span>
&#160;&#160;<span class="hljs-keyword" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(248, 35, 117); word-wrap: inherit !important; word-break: inherit !important;">if</span>&#160;(pID&#160;==&#160;qID)&#160;{
&#160;&#160;&#160;&#160;<span class="hljs-keyword" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(248, 35, 117); word-wrap: inherit !important; word-break: inherit !important;">return</span>;
&#160;&#160;}

&#160;&#160;<span class="hljs-comment" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(128, 128, 128); word-wrap: inherit !important; word-break: inherit !important;">//&#160;执行到这里，说明&#160;p&#160;和&#160;q&#160;不在相同的分量中，因此需要把它们进行归并，在这里，是把&#160;p&#160;所在的分量里的所有元素全部重命名为&#160;q&#160;所在的分量里的名称（唯一）</span>
&#160;&#160;<span class="hljs-keyword" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(248, 35, 117); word-wrap: inherit !important; word-break: inherit !important;">for</span>&#160;(<span class="hljs-keyword" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(248, 35, 117); word-wrap: inherit !important; word-break: inherit !important;">int</span>&#160;i&#160;=&#160;<span class="hljs-number" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(174, 135, 250); word-wrap: inherit !important; word-break: inherit !important;">0</span>;&#160;i&#160;&#60;&#160;id.length;&#160;i++)&#160;{</code></pre>&#8230; <a href="https://www.codelast.com/%e5%8e%9f%e5%88%9b-union-find%e7%ae%97%e6%b3%95%e4%b8%ad%e7%9a%84quick-find%e7%ae%97%e6%b3%95%e7%9a%84%e5%a4%8d%e6%9d%82%e5%ba%a6/" class="read-more">Read More </a></section>]]></description>
										<content:encoded><![CDATA[<p style="margin: 5px 0px; clear: both; font-family: sans-serif; font-size: 16px;">
	<br />
	union-find算法用于检测动态连通性，例如计算机网络中的两个节点是否连通，在一个特定圈子里的两个人是否有间接的朋友关系，等等。</p>
<p style="margin: 5px 0px; clear: both; font-family: sans-serif; font-size: 16px;">
<span id="more-8511"></span></p>
<p style="margin: 5px 0px; clear: both; font-family: sans-serif; font-size: 16px;">
	quick-find算法是union-find算法的众多实现中最简单也最没有效率的一种，它的主要实现如下：</p>
<section class="output_wrapper" id="output_wrapper_id" style="font-size: 16px; color: rgb(62, 62, 62); line-height: 1.6; letter-spacing: 0px; font-family: &quot;Helvetica Neue&quot;, Helvetica, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;">
<pre style="font-size: inherit; color: inherit; line-height: inherit; margin-top: 0px; margin-bottom: 0px; padding: 0px;">
<code class="java language-java hljs" style="margin: 0px 2px; line-height: 18px; font-size: 14px; letter-spacing: 0px; font-family: Consolas, Inconsolata, Courier, monospace; border-radius: 0px; color: rgb(169, 183, 198); background: rgb(40, 43, 46); padding: 0.5em; overflow-wrap: normal !important; word-break: normal !important; overflow: auto !important; display: -webkit-box !important;"><span class="hljs-function" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(248, 35, 117); word-wrap: inherit !important; word-break: inherit !important;"><span class="hljs-keyword" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; overflow-wrap: inherit !important; word-break: inherit !important;">public</span>&nbsp;<span class="hljs-keyword" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; overflow-wrap: inherit !important; word-break: inherit !important;">int</span>&nbsp;<span class="hljs-title" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(165, 218, 45); word-wrap: inherit !important; word-break: inherit !important;">find</span><span class="hljs-params" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(255, 152, 35); word-wrap: inherit !important; word-break: inherit !important;">(<span class="hljs-keyword" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(248, 35, 117); word-wrap: inherit !important; word-break: inherit !important;">int</span>&nbsp;p)</span>&nbsp;</span>{
&nbsp;&nbsp;<span class="hljs-keyword" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(248, 35, 117); word-wrap: inherit !important; word-break: inherit !important;">return</span>&nbsp;id[p];
}

<span class="hljs-function" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(248, 35, 117); word-wrap: inherit !important; word-break: inherit !important;"><span class="hljs-keyword" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; overflow-wrap: inherit !important; word-break: inherit !important;">public</span>&nbsp;<span class="hljs-keyword" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; overflow-wrap: inherit !important; word-break: inherit !important;">void</span>&nbsp;<span class="hljs-title" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(165, 218, 45); word-wrap: inherit !important; word-break: inherit !important;">union</span><span class="hljs-params" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(255, 152, 35); word-wrap: inherit !important; word-break: inherit !important;">(<span class="hljs-keyword" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(248, 35, 117); word-wrap: inherit !important; word-break: inherit !important;">int</span>&nbsp;p,&nbsp;<span class="hljs-keyword" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(248, 35, 117); word-wrap: inherit !important; word-break: inherit !important;">int</span>&nbsp;q)</span>&nbsp;</span>{
&nbsp;&nbsp;<span class="hljs-comment" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(128, 128, 128); word-wrap: inherit !important; word-break: inherit !important;">//&nbsp;查找点&nbsp;p&nbsp;和点&nbsp;q&nbsp;在id数组中的值，从而可以接着判断它们是否在相同的连通分量中</span>
&nbsp;&nbsp;<span class="hljs-keyword" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(248, 35, 117); word-wrap: inherit !important; word-break: inherit !important;">int</span>&nbsp;pID&nbsp;=&nbsp;find(p);
&nbsp;&nbsp;<span class="hljs-keyword" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(248, 35, 117); word-wrap: inherit !important; word-break: inherit !important;">int</span>&nbsp;qID&nbsp;=&nbsp;find(q);

&nbsp;&nbsp;<span class="hljs-comment" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(128, 128, 128); word-wrap: inherit !important; word-break: inherit !important;">//&nbsp;p,&nbsp;q已经在相同的分量中，无需任何操作</span>
&nbsp;&nbsp;<span class="hljs-keyword" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(248, 35, 117); word-wrap: inherit !important; word-break: inherit !important;">if</span>&nbsp;(pID&nbsp;==&nbsp;qID)&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;<span class="hljs-keyword" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(248, 35, 117); word-wrap: inherit !important; word-break: inherit !important;">return</span>;
&nbsp;&nbsp;}

&nbsp;&nbsp;<span class="hljs-comment" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(128, 128, 128); word-wrap: inherit !important; word-break: inherit !important;">//&nbsp;执行到这里，说明&nbsp;p&nbsp;和&nbsp;q&nbsp;不在相同的分量中，因此需要把它们进行归并，在这里，是把&nbsp;p&nbsp;所在的分量里的所有元素全部重命名为&nbsp;q&nbsp;所在的分量里的名称（唯一）</span>
&nbsp;&nbsp;<span class="hljs-keyword" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(248, 35, 117); word-wrap: inherit !important; word-break: inherit !important;">for</span>&nbsp;(<span class="hljs-keyword" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(248, 35, 117); word-wrap: inherit !important; word-break: inherit !important;">int</span>&nbsp;i&nbsp;=&nbsp;<span class="hljs-number" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(174, 135, 250); word-wrap: inherit !important; word-break: inherit !important;">0</span>;&nbsp;i&nbsp;&lt;&nbsp;id.length;&nbsp;i++)&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;<span class="hljs-keyword" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(248, 35, 117); word-wrap: inherit !important; word-break: inherit !important;">if</span>&nbsp;(id[i]&nbsp;==&nbsp;pID)&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;id[i]&nbsp;=&nbsp;qID;
&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;}
&nbsp;&nbsp;count--;
}
</code></pre>
</section>
<p style="margin: 5px 0px; clear: both; font-family: sans-serif; font-size: 16px;">
	find() 函数用于查找一个点 p 的名称；union() 函数用于归并两个点 p 和 q，如果它们已经在同一个连通分量里，那么不会产生任何归并效果。</p>
<p style="margin: 5px 0px; clear: both; font-family: sans-serif; font-size: 16px;">
	<span style="color: rgb(255, 255, 255);">文章来源：</span><a href="http://www.codelast.com/" rel="noopener noreferrer" target="_blank"><span style="color: rgb(255, 255, 255);">http://www.codelast.com/</span></a></p>
<p style="margin: 5px 0px; clear: both; font-family: sans-serif; font-size: 16px;">
	之所以把这种算法叫quick-find，是因为它的 find() 操作很快，只需要访问id数组一次；但是quick-find的 union() 操作却很慢，因为它需要访问整个id数组。</p>
<p style="margin: 5px 0px; clear: both; font-family: sans-serif; font-size: 16px;">
	事实上，union() 访问数组的次数，至少是&nbsp;<span style="color: rgb(192, 0, 0);">N+3</span>，至多是&nbsp;<span style="color: rgb(192, 0, 0);">2N+1</span>，其中N是点的个数。</p>
<p style="margin: 5px 0px; clear: both; font-family: sans-serif; font-size: 16px;">
	这是怎么算出来的呢？下面来看一下。</p>
<p style="margin: 5px 0px; clear: both; font-family: sans-serif; font-size: 16px;">
	<span style="color: rgb(31, 73, 125);">union() 函数一开始的两个 find() 操作无论如何是逃不掉的，所以这里至少就访问了 2 次id数组。</span></p>
<p style="margin: 5px 0px; clear: both; font-family: sans-serif; font-size: 16px;">
	<span style="color: rgb(31, 73, 125);">而 </span><span style="color:#b22222;">if (pID == qID) </span><span style="color: rgb(31, 73, 125);">这一句，没有对数组进行任何访问，因此，最后的for循环应该是至少访问了 N+1 次数组，但这又是怎么算出来的呢？</span></p>
<p style="margin: 5px 0px; clear: both; font-family: sans-serif; font-size: 16px;">
	<span style="color: rgb(31, 73, 125);">i 从 0 循环到 id.length（即N），共执行了N次，所以for循环里的if语句一定会执行N次，所以数组访问至少会有N次，那么还差1次，是怎么来的呢？</span></p>
<p style="margin: 5px 0px; clear: both; font-family: sans-serif; font-size: 16px;">
	<span style="color: rgb(31, 73, 125);">由于一定有一个 i 使得 </span><span style="color:#b22222;">id[i] == pID</span><span style="color: rgb(31, 73, 125);"> 成立（也就是p所在的那个分量），所以 </span><span style="color:#b22222;">id[i] == qID</span><span style="color: rgb(31, 73, 125);"> 至少会被执行一次，所以for循环访问数组的次数就至少是 </span><span style="color:#008000;">N+1</span><span style="color: rgb(31, 73, 125);"> 次了。在这种情况下，所有id数组中，只有一个元素是与p处于同一连通分量的（其实也就是p这一个，或者说，p很&ldquo;孤独&rdquo;），它会被合并到q所在的连通分量中。</span></p>
<p style="margin: 5px 0px; clear: both; font-family: sans-serif; font-size: 16px;">
	<span style="color: rgb(255, 255, 255);">文章来源：</span><a href="http://www.codelast.com/" rel="noopener noreferrer" target="_blank"><span style="color: rgb(255, 255, 255);">http://www.codelast.com/</span></a></p>
<p style="margin: 5px 0px; clear: both; font-family: sans-serif; font-size: 16px;">
	那么union() 访问数组的次数，最多是 2N+1，这又是怎么算出来的呢？</p>
<p style="margin: 5px 0px; clear: both; font-family: sans-serif; font-size: 16px;">
	当id数组中，除了q之外，其他所有元素都与p处于同一连通分量中的话，那么，<span style="color: rgb(192, 0, 0);">if (id[i] == pID)&nbsp;</span>这个条件就会成立 <span style="color:#008000;">N-1</span> 次，这意味着&nbsp;<span style="color: rgb(192, 0, 0);">id[i] = qID</span>&nbsp;会被执行<span style="color: rgb(0, 176, 80);">&nbsp;</span><span style="color:#008000;">N-1</span>&nbsp;次，而N次 if 判断无论如何都是会被执行的，所以for循环里访问数组的次数是<span style="color: rgb(0, 176, 80);">&nbsp;</span><span style="color:#008000;">N+N-1=2N-1&nbsp;</span>次，另外前面说了，union()函数中两个find()操作是免不了的，所以还要再加2次，总共是&nbsp;<span style="color:#008000;">2N-1+2=2N+1&nbsp;</span>次。<br />
	&nbsp;</p>
<p style="margin: 5px 0px; clear: both; font-family: sans-serif; font-size: 16px;">
	因此，union()访问数组的次数在&nbsp;<span style="color: rgb(192, 0, 0);">N+3&nbsp;</span>到&nbsp;<span style="color: rgb(192, 0, 0);">2N+1&nbsp;<span style="color: rgb(0, 0, 0);">之间。</span></span></p>
<p style="margin: 5px 0px; clear: both; font-family: sans-serif; font-size: 16px;">
	&nbsp;</p>
<p style="margin: 5px 0px; clear: both; font-family: sans-serif; font-size: 16px;">
	<span style="color: rgb(192, 0, 0);"><span style="color: rgb(0, 0, 0);">如果所有的 N 个分量其实都在一个连通分量中，那么在解这个union-find问题的时候，就要调用 N-1 次union()函数，则需要访问数组的次数至少是&nbsp;<span style="color: rgb(255, 0, 0);">(N+3)(N-1)</span>&nbsp;次，即等价于<span style="color: rgb(0, 112, 192);">&nbsp;N^2&nbsp;</span>次的复杂度。</span></span></p>
<p style="margin: 5px 0px; clear: both; font-family: sans-serif; font-size: 16px;">
	<span style="color: rgb(192, 0, 0);"><span style="color: rgb(0, 0, 0);">于是得证。</span></span></p>
<p>	<span style="color: rgb(255, 255, 255);">文章来源：</span><a href="https://www.codelast.com/" rel="noopener noreferrer" target="_blank"><span style="color: rgb(255, 255, 255);">https://www.codelast.com/</span></a><br />
	<span style="color: rgb(255, 0, 0);">➤➤</span>&nbsp;版权声明&nbsp;<span style="color: rgb(255, 0, 0);">➤➤</span>&nbsp;<br />
	转载需注明出处：<u><a href="https://www.codelast.com/" rel="noopener noreferrer" target="_blank"><em><span style="color: rgb(0, 0, 255);"><strong><span style="font-family: arial, helvetica, sans-serif;">codelast.com</span></strong></span></em></a></u>&nbsp;<br />
	感谢关注我的微信公众号（微信扫一扫）：</p>
<p style="border: 0px; font-size: 13px; margin: 0px 0px 9px; outline: 0px; padding: 0px; color: rgb(77, 77, 77);">
	<img decoding="async" alt="wechat qrcode of codelast" src="https://www.codelast.com/codelast_wechat_qr_code.jpg" style="width: 200px; height: 200px;" /></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.codelast.com/%e5%8e%9f%e5%88%9b-union-find%e7%ae%97%e6%b3%95%e4%b8%ad%e7%9a%84quick-find%e7%ae%97%e6%b3%95%e7%9a%84%e5%a4%8d%e6%9d%82%e5%ba%a6/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
