gpt4 book ai didi

algorithm - Scala 代码冒泡排序 for 循环

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:35:03 27 4
gpt4 key购买 nike

object BubbleSort {
def main(args : Array[String]) : Unit = {
bubbleSort(Array(50,33,62,21,100)) foreach println
}
def bubbleSort(a:Array[Int]):Array[Int]={
for(i<- 1 to a.length-1){
for(j <- (i-1) to 0 by -1){
if(a(j)>a(j+1)){
val temp=a(j+1)
a(j+1)=a(j)
a(j)=temp
}
}
}
a
}
}

我有上面的代码,据说在 Scala 中实现了冒泡排序。它主要对给定的数字进行排序,但它是一个实现良好的冒泡排序算法吗?这行代码在伪代码中的含义是什么:for(j <- (i-1) to 0 by -1){

我听不懂。

谢谢你的帮助

最佳答案

弄清楚一段 Scala 代码的作用的最好方法是在 REPL 中运行它:

scala> 5 to 0 by -1
res0: scala.collection.immutable.Range = Range(5, 4, 3, 2, 1, 0)

因此代码从 (i-1) 到 0,向后计数。

更一般地说,x to y 创建一个从整数 x 到整数 y 的范围。 by 部分修改此计数。例如,0 to 6 by 2 表示“从 0 到 6 以 2 计数”,或 Range(0, 2, 4, 6)。在我们的例子中,by -1 表示我们应该向后计数 1。

至于了解冒泡排序的工作原理,您应该阅读维基百科 article并使用它来帮助您了解代码的作用。

关于algorithm - Scala 代码冒泡排序 for 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14226252/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com