Алгоритм быстрой сортировки
fun partition(arr: IntArray, low: Int, high: Int): Int {
val pivot = arr[high] // Опорный элемент
var i = low - 1
for (j in low until high) {
if (arr[j] < pivot) {
i++
val temp = arr[i]
arr[i] = arr[j]
arr[j] = temp
}
}
val temp = arr[i + 1]
arr[i + 1] = arr[high]
arr[high] = temp
fun quickSort(arr: IntArray, low: Int, high: Int) {
if (low < high) {
val pi = partition(arr, low, high)
quickSort(arr, low, pi - 1)
quickSort(arr, pi + 1, high)
}
}
Пример сортировки массива с использованием быстрой сортировки на Kotlin:
fun main() {
val arr = intArrayOf(64, 34, 25, 12, 22, 11, 90)
quickSort(arr, 0, arr.size - 1)
println("Отсортированный массив: ${arr.joinToString()}")
}
В результате выполнения алгоритма на входном массиве [64, 34, 25, 12, 22, 11, 90]
мы получим [11, 12, 22, 25, 34, 64, 90]
.