gpt4 book ai didi

scala - scala中的插入排序实现

转载 作者:行者123 更新时间:2023-12-04 16:10:23 25 4
gpt4 key购买 nike

我正在尝试 Scala,我想看看如何在具有以下要求的 Scala 中实现插入排序:

  • 嵌套 for 循环
  • 输入的数组[Int]
  • 如果可能的话,一种通过引用方式在调用中修改函数内容的方法,否则返回一个 Array[Int]

  • 如果这不是实现插入排序的 Scala 方式,您是否仍然可以提供上述代码并解释该方法有什么问题。
    编辑:
    这是使用 while 循环的尝试(确实有效),不,这不是作业问题,为什么会有敌意?
    def insert_sort(a:Array[Int]):Array[Int]={
    for(i <- 0 until a.length)
    {
    var j=i+1

    while(j>1&&a(j)<a(j-1)&&j<a.length)
    {
    var c=a(j)
    a(j)=a(j-1)
    a(j-1)=c
    j-=1
    }
    }
    return a
    }

    最佳答案

    这就是我想出的,它似乎是功能性的、通用的、尾递归的(foldLeft 是尾递归的)...:

    def insertionSort[A](la: List[A])(implicit ord: Ordering[A]): List[A] = {
    def insert(la: List[A], a: A) = {
    val (h, t) = la.span(ord.lt(_, a))
    h ::: (a :: t)
    }

    la.foldLeft(List[A]()) {(acc, a) => insert(acc, a)}
    }

    关于scala - scala中的插入排序实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10406064/

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