fun selectionSortDescending(arr: Array<Int>) {
val n = arr.size
for (i in 0 until n - 1) {
var maxIdx = i
for (j in i + 1 until n) {
if (arr[j] > arr[maxIdx]) {
maxIdx = j
}
}
// Swap the found maximum element with the i (the new first) element
val temp = arr[maxIdx]
arr[maxIdx] = arr[i]
arr[i] = temp
}
}
fun main() {
val array = arrayOf(2, 141, 3, 4, 21, 13, 30, 50)
selectionSortDescending(array)
println(array.joinToString(", "))
}
/*
run:
141, 50, 30, 21, 13, 4, 3, 2
*/