fork download
  1. fun buildHeap(array: MutableList<Int>, n: Int) {
  2. for (i in 1 until n) {
  3. var parentIndex = (i - 1) / 2
  4. var j = i
  5.  
  6. while (j > 0 && array[j] > array[parentIndex]) {
  7. val tmp = array[j]
  8. array[j] = array[parentIndex]
  9. array[parentIndex] = tmp
  10. j = parentIndex
  11. parentIndex = (j - 1) / 2
  12. }
  13. }
  14. }
  15.  
  16.  
  17. fun heapSort(array: MutableList<Int>) {
  18. for (i in array.count() - 1 downTo 1) {
  19. buildHeap(array, i + 1)
  20. val tmp = array[0]
  21. array[0] = array[i]
  22. array[i] = tmp
  23. }
  24. }
  25.  
  26. fun main() {
  27. val array = mutableListOf(7, 3, 0, 1, 5, 2, 5, 19, 10, 5)
  28.  
  29. heapSort(array)
  30.  
  31. println(array)
  32. }
Success #stdin #stdout 0.1s 39620KB
stdin
Standard input is empty
stdout
[0, 1, 2, 3, 5, 5, 5, 7, 10, 19]