我将 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/