On se retrouve aujourd'hui pour la solution du précédent #KataOfTheWeek proposé par Jonathan en début de semaine !
Voici une solution en kotlin :
fun <T : Comparable<T>> quicksort(array: List<T>): List<T> {
if (array.isEmpty()) return emptyList()
val pivot = array.last()
val smallerValues = mutableListOf<T>()
val equalValues = mutableListOf<T>()
val biggerValues = mutableListOf<T>()
array.forEach {
when {
it == pivot -> equalValues.add(it)
it < pivot -> smallerValues.add(it)
it > pivot -> biggerValues.add(it)
}
}
return quicksort(smallerValues) + equalValues + quicksort(biggerValues)
}
A bientôt pour un nouveau #KataOfTheWeek !