在 Java 中,对已排序的列表进行排序的速度有多快?
In Java, how fast is sorting of an already sorted List?
所以我有一个 List
,我需要对它进行排序。
现在,因为我的代码目前看起来有点像妈妈的意大利面,我想知道如果我在 List
上调用 .sort
方法,当它已经排序时,排序是否会首先检查列表是否已经排序,就此收工,因此只需要很少的时间,或者它只是 运行 整个排序算法并且花费的时间与 List 未排序时一样多?
使用 built-in 排序方法对 java 中已排序的列表进行排序是线性的。
Java 使用 Timsort,参见 https://en.wikipedia.org/wiki/Timsort#Analysis :
In the best case, which occurs when the input is already sorted, it runs in linear time
所以我有一个 List
,我需要对它进行排序。
现在,因为我的代码目前看起来有点像妈妈的意大利面,我想知道如果我在 List
上调用 .sort
方法,当它已经排序时,排序是否会首先检查列表是否已经排序,就此收工,因此只需要很少的时间,或者它只是 运行 整个排序算法并且花费的时间与 List 未排序时一样多?
使用 built-in 排序方法对 java 中已排序的列表进行排序是线性的。
Java 使用 Timsort,参见 https://en.wikipedia.org/wiki/Timsort#Analysis :
In the best case, which occurs when the input is already sorted, it runs in linear time