【发布时间】:2018-05-06 08:53:04
【问题描述】:
嘿,所以我真的被这个问题困住了。
我需要设计一种算法(不需要代码),将某个部分排序的数组排序为完全排序的数组。数组有 N 个实数,前 N-[N\sqrt(N)]([] 表示这个数的 floor)元素被排序,而其余的都没有。最后未排序的数字没有任何特殊属性,事实上,除了它们显然是与其他数字一样的实数之外,我没有被告知任何关于它们的信息。
关键是算法的时间复杂度需要为 O(n)。
我的第一个想法是尝试只对未排序的数字进行排序,然后使用合并算法,但我想不出任何可以在 O(n) 中工作的排序算法。所以我在想这一切都错了,有什么想法吗?
【问题讨论】:
-
N\sqrt(N)是什么意思? N除以N的平方根吗? (但在这种情况下,为什么不简单地说平方根 N)?如果它是 N 的 N 乘以 N 的平方根,它会高于 N,所以这个问题没有意义。 -
是N除以N的平方根。我原来的帖子有一个错误,前N-[N\sqrt(N)]个元素是排序的。