Document that sorting is stable (#2552)

This commit is contained in:
ilya-g
2019-01-17 20:37:58 +03:00
committed by Nikolay Igotti
parent 7e55575fbf
commit 8e97c94005
3 changed files with 14 additions and 1 deletions
@@ -1388,6 +1388,8 @@ public actual fun CharArray.sort(): Unit {
/** /**
* Sorts the array in-place according to the natural order of its elements. * Sorts the array in-place according to the natural order of its elements.
*
* The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.
*/ */
public actual fun <T : Comparable<T>> Array<out T>.sort(): Unit { public actual fun <T : Comparable<T>> Array<out T>.sort(): Unit {
if (size > 1) kotlin.util.sortArrayComparable(this) if (size > 1) kotlin.util.sortArrayComparable(this)
@@ -1395,6 +1397,8 @@ public actual fun <T : Comparable<T>> Array<out T>.sort(): Unit {
/** /**
* Sorts the array in-place according to the order specified by the given [comparator]. * Sorts the array in-place according to the order specified by the given [comparator].
*
* The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.
*/ */
public actual fun <T> Array<out T>.sortWith(comparator: Comparator<in T>): Unit { public actual fun <T> Array<out T>.sortWith(comparator: Comparator<in T>): Unit {
if (size > 1) kotlin.util.sortArrayWith(this, 0, size, comparator) if (size > 1) kotlin.util.sortArrayWith(this, 0, size, comparator)
@@ -23,7 +23,12 @@ public actual inline fun <reified T> Array<out T>?.orEmpty(): Array<out T> = thi
throw IllegalArgumentException("fromIndex ($fromIndex) is greater than toIndex ($toIndex).") throw IllegalArgumentException("fromIndex ($fromIndex) is greater than toIndex ($toIndex).")
} }
// TODO: Move to generated code
/**
* Sorts a range in the array in-place with the given [comparator].
*
* The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.
*/
public fun <T> Array<out T>.sortWith(comparator: Comparator<in T>, fromIndex: Int = 0, toIndex: Int = size): Unit { public fun <T> Array<out T>.sortWith(comparator: Comparator<in T>, fromIndex: Int = 0, toIndex: Int = size): Unit {
sortArrayWith(this, fromIndex, toIndex, comparator) sortArrayWith(this, fromIndex, toIndex, comparator)
} }
@@ -9,11 +9,15 @@ import kotlin.comparisons.*
/** /**
* Sorts elements in the list in-place according to their natural sort order. * Sorts elements in the list in-place according to their natural sort order.
*
* The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.
*/ */
public actual fun <T : Comparable<T>> MutableList<T>.sort(): Unit = sortWith(Comparator<T> { a: T, b: T -> a.compareTo(b) }) public actual fun <T : Comparable<T>> MutableList<T>.sort(): Unit = sortWith(Comparator<T> { a: T, b: T -> a.compareTo(b) })
/** /**
* Sorts elements in the list in-place according to the order specified with [comparator]. * Sorts elements in the list in-place according to the order specified with [comparator].
*
* The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.
*/ */
public actual fun <T> MutableList<T>.sortWith(comparator: Comparator<in T>): Unit { public actual fun <T> MutableList<T>.sortWith(comparator: Comparator<in T>): Unit {
if (size > 1) { if (size > 1) {