scala冒泡排序代码
时间: 2023-03-08 22:58:22 浏览: 51
我的scala冒泡排序代码如下:object BubbleSort {def bubbleSort(arr: Array[Int]): Unit = {for(i ← 0 until arr.length - 1; j ← 0 until arr.length - 1 - i) {if (arr(j) > arr(j + 1)) {val tmp = arr(j)arr(j) = arr(j + 1)arr(j + 1) = tmp}}} }
相关问题
scala函数式编程冒泡排序
下面是使用 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` 函数则是对整个数组进行多次冒泡操作,直到数组有序为止。
用scala写出冒泡排序
使用Scala编写冒泡排序算法的基本步骤如下:
1. 从数组第一个元素开始,比较相邻的两个元素,如果第一个比第二个大,就交换它们两个;
2. 对每一对相邻的元素作同样的操作,从开始到最后一个元素结束,这样每一轮都会将最大的元素移到最后一个位置;
3. 重复步骤1-2,直到排序完成。