启发式合并的浅谈

启发式合并的浅谈


0.定义

人凭借直觉和经验认为某种较优的策略对算法进行优化。

具体来说:将两个数据结构合并时,将较少的数据结构的元素一个个插入到较大的数据结构。


1.时间复杂度

每次合并复杂度最坏是: O ( n ) O(n)

考虑:每次合并时,将个数少的合并的个数多的.时间复杂度 O ( m i n ( s i z e x , s i z e y ) ) O(min(size_x,size_y))

我们对一个元素进行分析,显然该元素被合并后,该元素所在的集合会比原理至少大一倍,下一次若该元素要被再次合并,另一个集合的大小至少为 2 × s i z e 2\times size

依次类推:每个元素至多被合并: O ( l o g n ) O(logn)

所以总复杂度: O ( n l o g n ) O(nlogn)


待整理 \dots\dots

猜你喜欢

转载自blog.csdn.net/weixin_45750972/article/details/107583180