【问题标题】:Merge sort variation n+m, confused合并排序变体 n+m,混淆
【发布时间】:2016-09-14 03:12:18
【问题描述】:

A 是一个由n 整数组成的数组,这些整数已经按升序排序。
B 为未排序的m 整数数组。
我们知道A 中的整数集与B 中的整数集不相交。描述一种生成数组的算法,其中所有n + m 整数都按升序排序。您的算法应在O(n + m log m) 时间终止。

我知道这应该类似于合并排序,但 O(n+mlogm) 中的 n+m 让我失望。谁能解释一下?

【问题讨论】:

    标签: arrays algorithm sorting


    【解决方案1】:

    我认为你应该先对 B 数组进行排序:O(mlogm)
    之后你有两个排序的数组,你需要合并它们,这将需要:O(n+m)
    现在整个过程是O(mlogm + (n+m) ),等于O(mlogm)

    【讨论】:

    • 如果我们不知道nm之间的关系,那么我猜总复杂度实际上应该是O(mlogm+n)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-24
    • 2019-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-03
    • 1970-01-01
    相关资源
    最近更新 更多