Kotlin默认使用什么样的排序?

问题描述 投票:3回答:1

哪个排序用于.sort(),. sortTith()等方法?

val array = arrayOf(3,2,1)

不同类型和大小的阵列的算法是否存在一些差异?

algorithm sorting kotlin
1个回答
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)
}

https://github.com/JetBrains/kotlin/blob/04bbf2393684fb7f552da667e8f28dfc1f83bbfb/libraries/stdlib/jvm/src/generated/_ArraysJvm.kt#L1789-L1798

这将导致使用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)
}

https://github.com/JetBrains/kotlin/blob/04bbf2393684fb7f552da667e8f28dfc1f83bbfb/libraries/stdlib/jvm/src/generated/_ArraysJvm.kt#L1729-L1734

这将导致使用java.util.DualPivotQuicksort(参见sort(int[] a)

© www.soinside.com 2019 - 2024. All rights reserved.