让A
成为已按升序排序的n
整数数组
设B
为未排序的m
整数数组
我们知道A
中的整数集与B
中的整数集不相交。描述一个生成数组的算法,其中所有n + m
整数都按升序排序。您的算法应该在O(n + m log m)
时间终止。
我知道这应该是合并排序,但n+m
中的O(n+mlogm)
会让我失望。谁能解释一下呢?
答案 0 :(得分:2)
我认为你应该先对B数组进行排序:O(mlogm)
之后你有两个排序的数组,你需要合并它们,这将采取:O(n+m)
现在整个过程为O(mlogm + (n+m) )
,等于O(mlogm)
。