`

Scala编程之插入排序

 
阅读更多

一、总述

       排序,这是一个十分经典且实用的算法。不论,你学习的何种编程语言,排序算法都是作为软件工程师或研发工程师所必须掌握的东西。最近一直在学习Scala,下面就通过Scala语言实现插入排序算法。

 

二、插入排序算法

       定义一个名为InsertSort的object对象

/**
  * Created by user on 2016/1/22.
  */
object InsertSort {
   def sort(x: List[Int]): List[Int] = {
       if(x.isEmpty){
          Nil
       }else{
          insert(x.head,sort(x.tail))
       }
   }

   def insert(x: Int,xs: List[Int]): List[Int] = {
       if(xs.isEmpty || x <= xs.head){
          x :: xs
       }else{
          xs.head :: insert(x,xs.tail)
       }
   }

   def main(args: Array[String]) {
       val num = 2 :: 1 :: 4 :: 3 :: 5 :: 7 :: 0 :: Nil
       val result = sort(num)
       println("Insert Sort: " + result)
   }
}

 

三、测试结果

       Insert Sort: List(0, 1, 2, 3, 4, 5, 7)

分享到:
评论

相关推荐

    Scala编程详解 第9讲-Scala编程详解:数组操作之Array、ArrayBuffer以及遍历数组 共7页.pptx

    Scala是一种强类型、多范式的编程语言,它在大数据领域有着广泛的应用,特别是在Apache Spark这样的分布式计算框架中。...了解并熟练掌握这些知识,对于深入学习Scala编程和Spark开发具有重要意义。

    scala-sorts:scala中的排序算法

    3. **插入排序(Insertion Sort)**:将未排序元素依次插入到已排序部分的适当位置。在小规模数据或部分有序的数据中表现良好。时间复杂度为 O(n^2),空间复杂度为 O(1)。 4. **希尔排序(Shell Sort)**:插入排序...

    scala程序员面试算法宝典代码

    - 冒泡排序、选择排序、插入排序、快速排序、归并排序、堆排序:这些是常见的排序算法,理解它们的原理和性能至关重要。 - 二分查找:在已排序的数组中查找特定元素,具有O(log n)的时间复杂度。 - 哈希查找:...

    Data Structures and Algorithms with Scala

    Scala是一种多范式编程语言,融合了面向对象和函数式编程的特性,它为理解和实现数据结构与算法提供了独特的视角。 在Java标签下,我们可以推测本书可能也适用于那些对Java有了解或兴趣的读者,因为Scala在很多方面...

    scala-algorithms:为了(重新)学习,练习经典排序算法的实现

    通过参与"scala-algorithms"项目,不仅可以深入学习Scala编程,还能巩固数据结构和算法基础,这对于任何IT专业人员来说都是非常宝贵的经验。不断地实践和学习,将使你对编程有更深入的理解,为解决实际问题打下坚实...

    Algorithm-algorithms-scala.zip

    Scala是一种强大的多范式编程语言,它融合了面向对象和函数式编程的特性,使得它在处理复杂问题和实现高效算法时特别有用。"Algorithm-algorithms-scala.zip" 是一个包含Scala实现的数据结构和算法的压缩包,对于...

    functional-programming-scala:Scala中的函数式编程示例

    插入排序 快速排序 泡泡排序 合并排序 选择排序 ## Type类 Scala具有支持临时多态性的“类型类”。 我不确定此功能与支持函数式编程的Scala是否相关,但是看起来它是一种使用非常广泛的功能。 这是一个使用上下文...

    手写程序(scala).docx

    - **compute函数**: 比较当前元素与已排序的列表中的每个元素,并将当前元素插入到正确的位置。 - **main函数**: 调用 `sort` 函数并打印排序后的结果。 ### 3. 归并排序算法在Scala中的实现 归并排序是一种高效的...

    Scala 【 5 数组常见操作和 Map 】

    在 Scala 中,数组和 Map 是两种非常常用的数据结构。数组用于存储同类型的固定大小的数据集合,而 Map 则用于存储键值对。接下来,我们将详细探讨数组的常见操作以及 ...理解并熟练运用这些操作是 Scala 编程的基础。

    编程题类别+样题.rar

    3. **算法**:算法是解决问题的步骤,如排序算法(冒泡排序、选择排序、插入排序、快速排序、归并排序等)、查找算法(线性查找、二分查找)、图算法(深度优先搜索、广度优先搜索)等。 4. **面向对象编程**:对于...

    scala-prioritymap:Scala的不可变优先级映射

    **正文** Scala是一种功能强大的多范式编程语言,它结合了面向对象和函数式编程的特点。在Scala的集合库中,提供了多种数据结构,如列表、集、映射等...通过理解和掌握这一数据结构,可以提升Scala编程的效率和质量。

    hackerrank题目解答

    - Scala:一种多范式编程语言,支持面向对象和函数式编程。 ### 算法和数据结构 - 书中包括了HackerRank上所有题目的答案。 - 适合读者反复研究和模仿,有助于加深对数据结构和算法的理解。 ### 编码风格和规范 - ...

    Sorting-Assignment

    本话题将深入探讨一个名为"Sorting-Assignment"的项目,该项目可能是一个用Scala编程语言实现的排序算法练习或教学资源。Scala是一种强类型、面向对象并具有函数式编程特性的现代编程语言,它被广泛用于构建高性能、...

    DSA:该存储库包含有关Scala中与数据结构和算法有关的问题的代码示例

    描述简单明了,重申了标题中的信息,即这个存储库提供了Scala编程语言中的数据结构和算法问题的代码实例。这意味着用户可以通过查看和运行这些代码来学习和理解如何在实际场景中应用这些基础但重要的计算机科学概念...

    Algorithm-DataStructure.zip

    在这个名为"Algorithm-DataStructure.zip"的压缩包中,我们可以预见到一系列关于Java、Python和Scala编程语言的数据结构和算法实现。这三个语言都是现代软件开发中广泛应用的编程工具,各有其特点和优势。 首先,让...

    leetcode-problems

    3. **算法**:掌握常见的排序算法(冒泡、选择、插入、快速、归并等)、查找算法(线性、二分查找等)、图算法(深度优先搜索、广度优先搜索等)以及动态规划、回溯、贪心等高级算法。 4. **Scala特定特性**:比如...

    CSE-250-Data-Structure

    在本课程"CSE-250-Data-Structure"中,我们将重点研究使用Scala编程语言实现的数据结构。Scala是一种强大的多范式语言,结合了面向对象和函数式编程的特点,因此在处理复杂数据结构时特别适用。 1. **数组**:数组...

    algoritmos:算法分析与设计课程材料(BUAP 2015 Spring)

    5. **排序和查找算法**:包括插入排序、选择排序、冒泡排序、快速排序、归并排序、二分查找、二叉查找树等,这些都是基础但重要的算法,会在课程中进行深入讲解。 6. **复杂度分析**:学生将学习如何计算和分析算法...

    algos:只是基础知识。

    基础算法包括排序算法(如冒泡排序、选择排序、插入排序、快速排序、归并排序和堆排序)和查找算法(如线性查找和二分查找)。这些算法是解决各种问题的基础,比如数据排序、高效搜索等。在Java中,我们还可以利用...

    Scala-k-d-tree-implementation:空间划分数据结构设计用于在任意维度的空间中进行有效的最近邻居搜索

    在Scala中实现k-d树,可以充分利用其强大的函数式编程特性,提供简洁且高效的代码。 首先,我们需要理解k-d树的基本概念。k-d树(k-dimensional tree)的名字来源于它的每一层都按照一个维度进行分割,这个维度在下...

Global site tag (gtag.js) - Google Analytics