要在O(n)中排序的N个整数?

时间:2019-04-10 20:34:49

标签: sorting data-structures time-complexity

假设您有n个整数(0,n2 )。这些整数都是其他整数的平方根。 指明是否可以对这些数字进行O(n)排序

我假设我们将取每个整数的平方根,但不确定是否可以将它们排序为O(n),将不胜感激

1 个答案:

答案 0 :(得分:0)

是的,如果您愿意使用O(n)空间:

  • 您已将N个整数存储在数组A中。
  • 用2n + 1位分配一个位图B,该位图B初始化为零。
  • 对于每个整数,设置B [A [i]] = 1
  • 创建一个空列表:
  • 依次迭代B,以便如果B [i] == 1则将i添加到列表中。

可以在O(2n)== O(n)的时间内完成。