java - Collections.Sort 后续排序的性能?

标签 java performance sorting

我将 Collections.sort 与自定义比较器类一起使用。我听说这有 O(N log N) 运行时复杂度。我很好奇当集合没有改变时后续排序会发生什么。

举例来说,假设我有一个 Egg 的 ArrayList,每个 Egg 都有一个近似的 size 字段(我的比较器按其排序)。如果我将十个鸡蛋插入数组列表中并对其进行排序,则预计需要 O(N log N) 时间。

如果我再次排序,而不添加、删除或更改任何元素,是否仍需要 N log N 时间?

最佳答案

Javadoc表示“如果低子列表中的最高元素小于高子列表中的最低元素,则忽略合并”。这似乎意味着什么也没有发生,所以它应该更快。

你总是可以测试它。

关于java - Collections.Sort 后续排序的性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7844105/

相关文章:

java - 如何在新的mapreduce API中设置JobEndNotificationURI?

java - 如何使用 RxJava 和 Spring 进行批量保存

linux - RSS、RPS 和 RFS 之间的主要区别是什么?

javascript - 使用 javascript 中的 sort 方法对数组进行排序

使用批处理脚本搜索和排序目录和子目录

java - Spring JPA 中关系的动态获取

Java调用Scala HashMap的getOrElse

algorithm - 为什么对本地列表求和比用 `GHC -O2` 对教堂编码列表求和慢?

xml - 我可以使用模式强制执行 XML 属性的顺序吗?

ios - 如何使用对象对 NSArray 进行排序