启发式合并~~(暴力合并)~~,将两个数据结构合并,只需要将小的数据结构中的元素一个一个的插入大的数据结构 O ( n ) O(n) O(n)。
如果题目只有插入操作没有分裂,总 O ( n l o g n ) O(nlogn) O(nlogn)。
因为每次合并,所有数据结构总大小为n,设两个数据结构大小为 a , b ( a ≥ b ) a,b(a≥b) a,b(a≥b),则时间复杂度为 O ( b ) O(b) O(b),数据结构大小将变为 a + b a+b a+b,则最坏情况为 ( a = b ) (a=b) (a=b),每次只把数据结构扩大两倍,最多只能合并 l o g n logn logn次,所以总时间复杂度为 O ( n l o g n ) O(nlogn) O(nlogn)。
题目:
BZOJ【1483】
BZOJ【2733】 题解