scala 中的插入排序实现

2024-03-14

我正在尝试 Scala,我想看看如何在 scala 中实现插入排序,并满足以下要求:

  1. 嵌套 for 循环
  2. 输入数组[Int]
  3. 如果可能的话,通过引用方式修改函数内容的方法,否则返回 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)}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

scala 中的插入排序实现 的相关文章

  • Scala 中的数字格式?

    我有一个从文件中读取的动态变化的输入 数字是Int or Double Scala 为什么要打印 0每次之后Double数字 Scala 有没有办法以与读取相同的方式打印它 Example var x Double 1 println x
  • 如何将 Spark-sftp 等新库添加到我的 Pyspark 代码中?

    当我尝试在 Spark conf 中设置包依赖项 spark sftp 时 我收到 ClassNotFoundException 但当我使用以下命令执行脚本时它会起作用 Spark submit packages com springml
  • Scala Stream 按需要调用(惰性)与按名称调用

    所以我知道按需要呼叫只是按名称呼叫的记忆版本 在 Martin Odersky 在 Coursera 上的 FP 课程中 第 7 3 讲 惰性评估 中 他提到如果 Streams 是使用按名称调用来实现的 那么它可能会导致计算复杂性的激增
  • Scala中如何将DataFrame转换为RDD?

    有人可以分享一下如何转换dataframe to an RDD Simply val rows RDD Row df rdd
  • Scala 2.10、Double.isNaN 和拳击

    在 Scala 2 10 中 是someDouble isNaN预计装箱 运行我的代码调用 isNaN通过反编译器 我仍然看到对double2Double在我的代码中 鉴于新的AnyVal在 2 10 中工作 我希望它不会比java lan
  • Spark - Scala - 用另一个数据帧中的查找值替换数据帧中的值

    我正在 Databricks 上使用 Spark 编程语言是Scala 我有两个数据框 主要数据框 见截图 1 https i stack imgur com EShir png 查找数据框 见截图3 https i stack imgur
  • 如何在 Akka Stream 中记录流量?

    我有一个带有单个流 图的 Akka Stream 应用程序 我想测量源头的流量并每 5 秒记录一次 例如 在过去 5 秒内收到 3 条消息 我尝试过 someOtherFlow groupedWithin Integer MAX VALUE
  • 《使用 Apache Flink 进行流处理》如何从 IntelliJ 运行书籍代码?

    如中所述这个帖子 https stackoverflow com questions 61043860 how to run first example of apache flink我无法成功运行 使用 Apache Flink 进行流处
  • 将列表拆分为多个具有固定元素数量的列表

    如何将元素列表拆分为最多包含 N 个项目的列表 例如 给定一个包含 7 个元素的列表 创建 4 个组 最后一组可能包含较少的元素 split List 1 2 3 4 5 6 seven 4 gt List List 1 2 3 4 Lis
  • 将 Scala Dataframe 写入 CSV 文件时应用 UTF8 编码

    在 Spark2 Scala 中将数据帧写入 CSV 文件时如何正确应用 UTF8 编码 我正在使用这个 df repartition 1 write mode SaveMode Overwrite format csv option he
  • Liftweb 环境中的后台任务

    我必须编写守护进程 并且我想使用模型来连接到数据库和一些有用的 Lift 类 是否可以运行 Rails 的 rake 任务的模拟 Scala 社区组上也有类似的问题 答案是使用Actors来做后台处理
  • Scala 性能问题

    In the 丹尼尔 科泽夸 Daniel Korzekwa 撰写的文章 http blog danmachine com 2011 01 moving from java to scala one year html 他说以下代码的性能
  • 新式(“内联”)宏需要 scala.meta

    我刚刚更新到 scala meta 2 0 0 M1 和最新的 scala 2 12 3 现在宏不再编译 我所做的唯一更改是将元版本从 1 8 0 更改为 2 0 0 M1 错误 新式 内联 宏需要 scala meta 有谁知道是否有快速
  • scala/spark 代码不允许在 hive 中添加列

    如果源数据有新列 我尝试在 Hive 表中添加一列 所有新列的检测都运行良好 但是 当我尝试将列添加到目标表时 我收到此错误 for f lt df schema fields if f name chk spark sqlContext
  • 逆变方法参数类型

    wiki 逆变方法参数类型 https en wikipedia org wiki Covariance and contravariance 28computer science 29 Contravariant method argum
  • Scala:具有复杂结构的树插入尾递归

    我正在 scala 中创建自定义对象树 并且我的插入方法引发堆栈溢出 因为它不是尾递归 但是 我不太清楚如何使其尾递归 我见过使用 累加器 变量的相关示例 但它们要么是只能相乘和覆盖的整数之类的东西 要么是我在适应树时遇到困难的列表 这是我
  • Scala Array.apply 有何魔力

    来自 scala 2 10 4 的 array scala Array定义为 final class Array T length Int extends java io Serializable with java lang Clonea
  • 通用特征的隐式转换

    我正在实现一个数据结构 并希望用户能够使用任何类型作为密钥 只要他提供一个合适的密钥类型来包装它 我有这个关键类型的特质 这个想法是进行从基类型到键类型的隐式转换 反之亦然 实际上 只使用基类型 该特征看起来像这样 trait Key T
  • 如何捕获 Oozie Spark 输出

    有没有办法捕获spark的输出然后将其输入到shell上 我们当前正在使用 scala 创建 jar 文件 并希望我们的 Spark 输出成为 shell 输入 我的想法是使用 wf actionData spark XXXX var 我只
  • 如何在 Scala 中打印任何内容的列表?

    目前我有一个打印整数的方法 def printList args List Int Unit args foreach println 我如何修改它 使其足够灵活 可以打印任何内容的列表 您不需要专用的方法 所需的功能已经在集合类中 pri

随机推荐

  • Node exceljs读取文件

    所以根据官方文档我应该能够使用以下方式读取Excel文档 read from a file var workbook new Excel Workbook workbook xlsx readFile filename then funct
  • ggplot2 +facet_:某些方面的反转轴?

    我想将三个子图组合成一个图 而分面将是一种自然的方法 然而 使用反转的 x 轴 这些子图之一会更容易 更自然地阅读 而我想不理会其他子图 有没有办法使用facet grid 或facet wrap 来完成此任务 我考虑过的另一种选择是 gr
  • 如何在flutter webview中打开应用程序链接?

    在 Flutter 中 我使用 flutter网页视图插件 https pub dartlang org packages flutter webview plugin启动一个 url 例如 flutterWebviewPlugin lau
  • Sizzle 和 document.querySelectorAll 有什么区别

    据我所知 嘶嘶声和querySelector querySelectorAll是 CSS 选择器 那么 加载 Sizzle 和执行以下操作有什么区别 Sizzle my CSS query and document querySelecto
  • 我如何在 Capybara 中测试页面是否*未*重新加载(JavaScript onClick 拦截已起作用)?

    我用的是水豚 黄瓜和恶作剧 我正在测试附加到表单提交按钮的 JavaScript 函数 该函数旨在捕获提交事件并阻止它 在后台执行 AJAX 请求 使用和不使用 AJAX 页面最终看起来都是一样的 但 AJAX 方法要快得多 并且不会中断浏
  • 开始一项新活动

    我正在使用 Xamarin 我想启动一个名为 AutoLinkActivity 的新活动 这是我的代码 using System using Android App using Android Content using Android R
  • Java 示例代码示例 youtube data api v3 和授权方法作为 api 密钥

    我是 google api 的新手 为 YouTube 频道创建项目 我已经为该项目创建了 api 并生成了 api 密钥 在项目上启用 Youtube api 我到处都能获得 OAUTH 授权的代码示例 但无法找到任何用于使用 api K
  • 平衡设计原则:单元测试

    我正在编写 Bananagrams 的模拟 目前 我有一个GameMaster维护公共片段集合的类 这deal Player 方法向该玩家分发一定数量的棋子 我想为此编写单元测试 然而 此时我没有吸气剂 因此无法检查对象的状态 为什么不添加
  • “lxd”与 lxc/docker 有何不同?

    问题 lxd 如何在容器内提供完整的操作系统功能 而不仅仅是单个进程 它与 lxc docker 包装器有什么不同 是不是类似于用docker supervisor wrapper脚本启动一个容器 在一个容器中包含多个进程 换句话说 我可以
  • 使用加密密码连接到 gmail(使用 imap 和 javamail)

    我正在尝试使用一个简单的java程序连接到gmail 像这个 https harikrishnan83 wordpress com 2009 01 24 access gmail with imap using java mail api
  • 如何使用带有角度的离子框架制作apk文件

    我在本地目录中创建了简单的应用程序 该应用程序名称是 Ionic Chat master 我怎样才能把它变成apk文件 我已经使用 git 尝试了以下命令 但对我不起作用 npm install g cordova cordova buil
  • 为什么 C# 构造函数行为与 Java 不同,反之亦然?

    给定这个 Java 代码 输出0 and 4 class A A print void print System out println A class B extends A int i Math round 3 5f public st
  • 为什么只有一个核心承担全部负载,如何让其他29个核心承担负载?

    我正在尝试将 Spark 处理的数据推送到 C 的 3 节点集群 我正在向 Cassandra 推送 2 亿条记录 但它失败了 错误如下 下面是我的 Spark 集群配置 Nodes 12 vCores Total 112 Total me
  • 如何使用 CSS 或 JS 使图像变暗而不影响透明度?

    到处建议的调暗图像的正常方法是更改 其不透明度属性并在其下方显示黑色的东西 但是 我的图像具有透明度并且位于白色背景上 所以我想将背景保持在图像白色的透明部分下 只使有颜色的像素变暗 这可以在 CSS 最好 或 JS 中完成吗 编辑 示例图
  • 在单元测试期间我应该模拟哪些功能

    我一直在阅读 Stack Overflow 上的一些文章和帖子 了解何时应该模拟函数 何时不应该模拟函数 但我遇到了一个情况 我不确定该怎么做 我有一个 UserService 类 它使用依赖项注入概念通过其构造函数接收依赖项 class
  • 我应该使用 ScriptSharp

    我正在开发我的第一个 ASP NET MVC 应用程序 我相信 Script 可以帮助我很多 但它找不到支持我发展所需的资源 我找不到 Codeplex 网站 只有一本手册 很好 但还不够 我能找到的教程很少 我知道 Script 用于开发
  • 移动设备上的自动对焦文本字段,但没有键盘?

    作为我的登录和注册表单的一部分 如果出现错误 它将自动聚焦相关字段 其实 事情并不像我想象的那么简单 让我尝试解释一下 基本上 在这个项目中 页面是通过 AJAX 加载的 表格可能包括autofocus属性 这很好用 但在移动设备上它只显示
  • 禁止直接访问图像

    我正在制作一个小家庭相册 打算稍后向其他人开放以存储图像 我将图像上传到 images 然后调整它们大小 3 次 普通视图 缩略图和小版本 并将它们移动到 images thumbs images normal images tiny 然后
  • mysql 加载数据内文件更新

    我目前正在使用 mySQL LOAD DATA INFILE 将 csv 文件插入到我的数据库中 该 csv 文件每天都会下载到服务器 以保持产品数据最新 我想知道的是如何使用新的 csv 更新表并保留没有不同的现有数据 这是我目前的声明
  • scala 中的插入排序实现

    我正在尝试 Scala 我想看看如何在 scala 中实现插入排序 并满足以下要求 嵌套 for 循环 输入数组 Int 如果可能的话 通过引用方式修改函数内容的方法 否则返回 Array Int 如果这不是实现插入排序的 Scala 方法