fun combSort(array: MutableList<Int>) {
    var gap = array.count()
    val shrink = 1.3
    var sorted = false
    while (!sorted) {
        gap = (gap / shrink).toInt()
        if (gap <= 1) {
            gap = 1
            sorted = true
        }
 
        var i = 0
        while (i + gap < array.count()) {
            if (array[i] > array[i + gap]) {
                val tmp = array[i]
                array[i] = array[i + gap]
                array[i + gap] = tmp
                sorted = false
            }
 
            i++
        }
    }
}
 
 
fun main() {
    val array = mutableListOf(7, 3, 0, 1, 5, 2, 5, 19, 10, 5)
 
    combSort(array)
 
    println(array)
}
				ZnVuIGNvbWJTb3J0KGFycmF5OiBNdXRhYmxlTGlzdDxJbnQ+KSB7CiAgICB2YXIgZ2FwID0gYXJyYXkuY291bnQoKQogICAgdmFsIHNocmluayA9IDEuMwogICAgdmFyIHNvcnRlZCA9IGZhbHNlCiAgICB3aGlsZSAoIXNvcnRlZCkgewogICAgICAgIGdhcCA9IChnYXAgLyBzaHJpbmspLnRvSW50KCkKICAgICAgICBpZiAoZ2FwIDw9IDEpIHsKICAgICAgICAgICAgZ2FwID0gMQogICAgICAgICAgICBzb3J0ZWQgPSB0cnVlCiAgICAgICAgfQoKICAgICAgICB2YXIgaSA9IDAKICAgICAgICB3aGlsZSAoaSArIGdhcCA8IGFycmF5LmNvdW50KCkpIHsKICAgICAgICAgICAgaWYgKGFycmF5W2ldID4gYXJyYXlbaSArIGdhcF0pIHsKICAgICAgICAgICAgICAgIHZhbCB0bXAgPSBhcnJheVtpXQogICAgICAgICAgICAgICAgYXJyYXlbaV0gPSBhcnJheVtpICsgZ2FwXQogICAgICAgICAgICAgICAgYXJyYXlbaSArIGdhcF0gPSB0bXAKICAgICAgICAgICAgICAgIHNvcnRlZCA9IGZhbHNlCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGkrKwogICAgICAgIH0KICAgIH0KfQoKCmZ1biBtYWluKCkgewogICAgdmFsIGFycmF5ID0gbXV0YWJsZUxpc3RPZig3LCAzLCAwLCAxLCA1LCAyLCA1LCAxOSwgMTAsIDUpCiAgICAKICAgIGNvbWJTb3J0KGFycmF5KQogICAgICAgIAogICAgcHJpbnRsbihhcnJheSkKfQ==