Kotlin 版本冒泡排序

1,038 阅读1分钟
class ExampleUnitTest {
    @Test
    fun addition_isCorrect() {
        // assertEquals(4, 2 + 2)
        bubble123()
        // bubble321()
    }

    var array = arrayOf(2, 5, 4, 3, 7, 8, 6, 9, 1)
    private fun bubble123() {
        for (i in array.indices) {
            for (j in (i + 1) until array.size) {
                if (array[i] > array[j]) {
                    var temp = array[i]
                    array[i] = array[j]
                    array[j] = temp
                }
            }
            for (i in array.indices) {
                print(array[i])
                if (i != array.size - 1) {
                    print("-")
                }
            }
            println("")
        }
    }

    private fun bubble321() {
        for (i in (array.size - 1) downTo 0) {
            for (j in (i - 1) downTo 0) {
                if (array[i] < array[j]) {
                    var temp = array[i]
                    array[i] = array[j]
                    array[j] = temp
                }
            }
          for (i in array.indices) {
            print(array[i])
            if (i != array.size - 1) {
              print("-")
            }
          }
          println("")
        }
    }
}

bubble123()从小往大,从前往后排序,输出结果为:
1-5-4-3-7-8-6-9-2
1-2-5-4-7-8-6-9-3
1-2-3-5-7-8-6-9-4
1-2-3-4-7-8-6-9-5
1-2-3-4-5-8-7-9-6
1-2-3-4-5-6-8-9-7
1-2-3-4-5-6-7-9-8
1-2-3-4-5-6-7-8-9
1-2-3-4-5-6-7-8-9

bubble321()从大往小,从后往前排序,输出结果为:
2-5-4-3-7-8-6-1-9
2-5-4-3-7-6-1-8-9
2-5-4-3-6-1-7-8-9
2-5-4-3-1-6-7-8-9
2-4-3-1-5-6-7-8-9
2-3-1-4-5-6-7-8-9
2-1-3-4-5-6-7-8-9
1-2-3-4-5-6-7-8-9
1-2-3-4-5-6-7-8-9