我有一个List
,我需要对它进行排序。现在,因为我的代码现在看起来有点像妈妈做的意大利面,我想知道如果我在List
上调用.sort
方法,当它已经排序时,这个排序是否会首先检查列表是否已经排序,然后就结束它,这样花费很少的时间,或者它只是要运行整个排序算法,并且花费和列表没有排序时一样多的时间?
在java中使用内置的sort方法对已经排序的列表进行排序是线性的。
Java使用Timsort,参见https://en.wikipedia.org/wiki/Timsort#Analysis:
在最好的情况下,当输入已经排序时,它在线性时间内运行