1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
private fun quickSort(sortList: IntArray) { loopForQuickSort(sortList, 0, sortList.size - 1) } private fun loopForQuickSort(list: IntArray, start: Int, end: Int) { if (start >= end) { return } val k = partition(list, start, end) loopForQuickSort(list, start, k - 1) loopForQuickSort(list, k + 1, end) }
private fun partition(list: IntArray, begin: Int, end: Int): Int { val x = list[end] var i = begin - 1
for (j in begin until end) { if (list[j] <= x) { i++ swapByIndex(list, i, j) } }
swapByIndex(list, end, i + 1)
return i + 1 }
|