scala函数式编程冒泡排序
时间: 2023-07-27 10:07:41 浏览: 122
Scala函数式编程.pdf
下面是使用 Scala 函数式编程实现冒泡排序的代码:
```scala
def bubbleSort(arr: Array[Int]): Array[Int] = {
val n = arr.length
def bubblePass(a: Array[Int], i: Int): Array[Int] = {
if (i < n - 1) {
if (a(i) > a(i + 1)) {
val temp = a(i)
a(i) = a(i + 1)
a(i + 1) = temp
}
bubblePass(a, i + 1)
} else a
}
def bubbleIter(a: Array[Int], j: Int): Array[Int] = {
if (j < n) bubbleIter(bubblePass(a, 0), j + 1)
else a
}
bubbleIter(arr, 0)
}
```
这个实现方式使用了递归和不可变变量,符合函数式编程的思想。其中,`bubblePass` 函数是对数组进行一次冒泡操作,`bubbleIter` 函数则是对整个数组进行多次冒泡操作,直到数组有序为止。
阅读全文