.sort()、. sortWith()等方法使用哪种排序方式?
val array = arrayOf(3,2,1)
对于不同类型和大小的数组,算法是否有所不同?
答案 0 :(得分:3)
仅扩展Marko Toplnik said in the comment的内容:请谨慎创建数组,因为在此基础上,将使用不同的sort
函数。
val array = arrayOf(3,2,1)
array.sort()
(在Kotlin / JVM中)导致的结果:
public fun <T> Array<out T>.sort(): Unit {
if (size > 1) java.util.Arrays.sort(this)
}
这将导致使用java.util.ComparableTimSort
(请参阅sort(Object[] a)
)
val array = intArrayOf(3,2,1)
array.sort()
(在Kotlin / JVM中)导致的结果:
public actual fun IntArray.sort(): Unit {
if (size > 1) java.util.Arrays.sort(this)
}
这将导致使用java.util.DualPivotQuicksort
(请参阅sort(int[] a)
)