Which sorting is using for .sort(), .sortWith() etc methods?
val array = arrayOf(3,2,1)
对于不同类型和大小的数组,算法是否有所不同?
Which sorting is using for .sort(), .sortWith() etc methods?
val array = arrayOf(3,2,1)
对于不同类型和大小的数组,算法是否有所不同?
扩展一下what 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)
}