当前位置: 首页 > 知识库问答 >
问题:

给定一个排序数组,我们可以构建一个O(n^2)中所有对之和的排序数组吗?

郏扬
2023-03-14

给定一个整数的排序数组,我们能建立一个O(n^2)中所有对之和的排序数组吗?

一个简单的解决方案是以O(n^2)构建和数组,然后以O(n^2(log(n^2))=O(n^2 logn)时间对其进行排序。

另一个解决方案是构建n个排序数组,每个数组有n个数字,单位为O(n^2),并在O(n^2 logns)时间内合并它们(例如,请参见此处)。

我们能做得更好吗?

共有1个答案

夏朝
2023-03-14

这是一个公开的问题,在文献中称为排序XY。已知的最好结果是O(n^2对数n)-时间算法,它使用O(n^2)比较,这是由Lambert和Steiger——Streinu提出的。

 类似资料:
  • 我如何排序一个数组尽可能接近一个目标数组。 例如: 数组最多只能包含4个元素: 但在不是的情况下,排序应如下所示: 排序为 排序为 标准是使它尽可能接近,并且在不存在特定元素的地方,跳过它。 我当前的代码似乎做得不对,我把它包含在下面: null null 我怎么修好它?

  • 问题内容: 假设我有一个自定义类的数组,每个类都包含一个名为 我还有一个任意值数组,称为,如下所示: 我的目标是对所有QB 进行排序,然后再对所有WR,RB和TE 进行排序。 我当前的操作方式是遍历中的每个元素,然后遍历所有播放器以附加到新数组。但是,我想不出一种更简单(更有效)的方法来做到这一点。非常感谢任何提示或指示。谢谢。 问题答案: 编辑: 我原来的方法是狗屎。这篇文章吸引了很多人的注意力

  • 问题内容: 我有多个数组,我想根据其中一个的排序顺序对所有数组进行排序,如下所示: 我希望函数执行后,数组将如下所示: 问题答案: 您可以执行以下操作:首先根据键控数组的索引的索引对它们进行索引的值对它们进行排序,然后使用: 如果要在任何类型的集合上使它通用(但仍以与std lib集合算法相同的样式返回数组): 以及带有自定义比较器的版本:

  • 我有多个数组,我想根据其中一个数组的排序顺序对所有数组进行排序,如下所示: 我预计函数执行后的数组将如下所示:

  • 我想写一个时间O(n*lgk)的算法,将k个排序数组合并成一个排序数组,其中n是所有输入数组的元素总数。 你能告诉我怎么做吗? 编辑:我编写了以下算法: 你能告诉我这是否正确吗?