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

如何高效地对int数组排序

张银龙
2023-03-14

我有INT数组

int array[] = ...
Arrays.sort(array);
array = Arrays.stream(array).sorted().toArray();

我也在寻找类似的问题,但我只发现了java.util.stream.stream .sorted()的大O复杂性,这一点也没有帮助,因为有两个不同的答案(第一个当然是部分错误的,因为arrays.sort并不总是O(n log n))。第二个呢?我还没找到证据。

共有1个答案

闾丘高峰
2023-03-14

您应该研究Heapsort,虽然稍微慢一点,但它保证O(n Log n)。快速排序与堆排序

这里还有教科书的解释。

 类似资料:
  • 假设我有一个字典数组: 我如何排序,使它是降序,按“id”排序? 但我知道这是错误的,也不是有效的。

  • 我很惊讶以前没有人问过这个特定的问题,但我真的没有在SO上或。 假设我有一个包含整数的随机numpy数组,例如: 但我希望解决方案按降序排序。 现在,我知道我总能做到: 但这最后一句话是否高效?它不创建一个按升序排列的副本,然后反转这个副本以得到按反转顺序排列的结果吗?如果情况确实如此,是否有一个有效的替代方案?看起来不像接受参数来更改排序操作中比较的符号,以获得相反的顺序。

  • 问题内容: 以下代码将按 升序 对数组进行排序: 我需要 按降序 排序。如何使用比较器执行此操作? 请帮忙。 问题答案: 对于原始数组类型,您必须编写一个反向排序算法: 或者,您可以将转换为并编写比较器: 或使用,因为它仅适用于非原始数组类型。 最后,

  • 问题内容: 我一直在使用sort()函数,但它混合了相对顺序。 这就是我的代码的样子。 Swift API表示: 排序算法不稳定。不稳定排序可能会更改比较相等的元素的相对顺序。 如何更改此值,以使相对顺序保持与以前相同? 问题答案: 从这里获取:https : //medium.com/@cocotutch/a-swift-sorting- problem-e0ebfc4e46d4

  • 问题内容: 令我惊讶的是,以前没有提出过这个具体问题,但我的确没有在SO或文档中找到它。 假设我有一个包含整数的随机numpy数组,例如: 如果对它进行排序,则默认情况下我将获得升序: 但我希望解决方案按 降序 排序。 现在,我知道我可以永远做: 但这最后的陈述 有效 吗?它不是按升序创建副本,然后反转此副本以反转顺序获得结果吗?如果确实如此,是否有有效的选择?看起来好像不接受参数来更改排序操作中

  • 我自己似乎无法解决这个问题。我有一个二维阵列, 字符串收集器[名称][#ofstuff] 我试着用这段代码来分类: 我对Compare很陌生,试着阅读了很多关于它的文档,但并不真正理解它。排序函数是否只获取我想要比较两个字符串的信息,然后执行它的操作? 出于某种原因,此代码在每次读取时都会抛出NullPointerException。 p1处线程“AWT-event queue-0”Java .