冒泡排序是一种简单的排序算法,它重复地遍历要排序的列表,比较相邻的元素并交换它们的位置,直到整个列表排序完成。在Scala中实现冒泡排序可以参考以下代码:
def bubbleSort(arr: Array[Int]): Array[Int] = {
val n = arr.length
for (i <- 0 until n-1) {
for (j <- 0 until n-i-1) {
if (arr(j) > arr(j+1)) {
val temp = arr(j)
arr(j) = arr(j+1)
arr(j+1) = temp
}
}
}
arr
}
val arr = Array(8, 4, 2, 9, 5)
val sortedArr = bubbleSort(arr)
println(sortedArr.mkString(", "))
这段代码定义了一个名为bubbleSort
的函数,它接受一个整数数组作为输入,并返回排序后的数组。函数使用嵌套的循环来比较相邻的元素并进行交换,直到整个数组排序完成。最后,我们使用示例数组Array(8, 4, 2, 9, 5)
进行测试,并打印排序后的结果。
关于异常java.lang.ArrayIndexOutOfBoundsException
,它表示数组索引越界异常。在你的问题中,异常发生在线程"main"中,意味着在主线程中出现了数组索引越界的问题。这通常是由于访问数组时使用了超出数组边界的索引导致的。
要解决这个问题,你可以检查代码中的数组访问部分,确保索引值在合法范围内。在冒泡排序的实现中,内层循环的范围应该是0 until n-i-1
,其中n
是数组的长度,i
是外层循环的迭代变量。确保索引值不超过数组的边界。
领取专属 10元无门槛券
手把手带您无忧上云