您的位置:首页 > 其它

Kotlin练习-快速排序

2017-06-02 22:49 316 查看
Java版本

object QuickSort {

fun sort(array: MutableList<Int>): MutableList<Int> {

if (array.size == 0 || array.size == 1) return array
val flag = array[0]
//删除基准元素,如果不删除的话,基准值也会进入左边篮子中,而且永远是第一个位置,第二次开始,所有元素都小于4,就会进入死循环。
array.removeAt(0)
val leftArray = mutableListOf<Int>()
val rightArray = mutableListOf<Int>()
//站队,小于等于基准值的放到左边篮子里,大于基准值放到右边篮子里
array.forEach {
if (it <= flag) {
leftArray.add(it)
} else {
rightArray.add(it)
}
}
//递归排序左右两侧数据
val sortedLeftArray = sort(leftArray)
val sortedRightArray = sort(rightArray)

//排序完成后,组装
val sortedArray = mutableListOf<Int>()
sortedLeftArray.forEach {
sortedArray.add(it)
}
sortedArray.add(flag)
sortedRightArray.forEach {
sortedArray.add(it)
}

return sortedArray
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: