def sort(unSortList: List[Int]): List[Int] = {
if (unSortList.isEmpty || unSortList.size == 1) return unSortList
val flag: Int = unSortList.head
//过滤得到小于等于基准值的数据
val lessFlag = for (item <- unSortList.tail if item <= flag) yield item
//过滤得到大于基准值的数据
val greaterFlag = for (item <- unSortList.tail if item > flag) yield item
//递归排序左右两侧的元素
//.:::是Set中方法,向当前列表前面添加参数列表,而:::只是链接2个列表。
//val sorted = sort(greaterFlag).:::(sort(lessFlag) :+ flag)
val sorted = (sort(lessFlag) :+ flag) ::: sort(greaterFlag)
sorted
}
Scala练习-快速排序
最新推荐文章于 2022-04-11 19:15:24 发布