Kotlin中如何将可变列表作为函数参数实现冒泡排序
Kotlin 冒泡排序函数实现指导
函数参数语法说明
在Kotlin中,接收可变列表作为参数的函数定义格式如下:
fun bubbleSort(inputList: MutableList<Int>): MutableList<Int> { // 排序逻辑写在这里 }
其中:
inputList: MutableList<Int>表示参数是一个存储整数的可变列表: MutableList<Int>表示函数返回一个排序后的可变整数列表
完整实现代码(放在main函数之后)
因为可变列表是引用传递,直接修改会改变原列表,所以建议先复制一份原列表再排序,避免影响原始数据:
fun bubbleSort(inputList: MutableList<Int>): MutableList<Int> { // 复制原列表,避免修改传入的原始数据 val sortedList = inputList.toMutableList() val size = sortedList.size // 外层循环:控制排序轮数,共需size-1轮 for (i in 0 until size - 1) { // 内层循环:每轮比较到未排序的最后一个元素 for (j in 0 until size - 1 - i) { // 前一个元素大于后一个则交换 if (sortedList[j] > sortedList[j + 1]) { // Kotlin中交换元素的基础写法 val temp = sortedList[j] sortedList[j] = sortedList[j + 1] sortedList[j + 1] = temp } } } return sortedList }
关键细节说明
- 复制列表:使用
toMutableList()创建原列表的副本,这样排序操作不会影响main函数中最初创建的list - 循环范围:
0 until size - 1等价于0..size-2,避免数组越界 - 交换简化:也可以用Kotlin解构语法简化交换逻辑:
sortedList[j] = sortedList[j+1].also { sortedList[j+1] = sortedList[j] }
内容的提问来源于stack exchange,提问作者Locu_St
相关产品推荐
相关产品推荐

