scala冒泡排序

scala冒泡排序:

object Maopao {
  def main(args: Array[String]) {
    val list = List(1, 23, 432, 10, 23, 42, 3, 23, 8, 23, 4)
    print(sort2(list))
    println()
    val arr = Array(2, 5, 6, 7, 8, 10, 34, 656, 3)
    sort(arr)
    printArr(arr)
  }
 //基本的冒泡排序,类似java写法
  def sort(arr: Array[Int]) = {
    for (i <- 0 until arr.length; j <- 0 until arr.length - 1; if (arr(j) > arr(j + 1))) {
      val temp = arr(j)
      arr(j) = arr(j + 1)
      arr(j + 1) = temp
    }
  }

  def printArr(arr: Array[Int]) = {
    for (i <- 0 until arr.length)
      print(arr(i) + ",")
  }

  def sort2(list: List[Int]): List[Int] = list match {
    case List() => List()
    case head :: tail => comput(head, sort2(tail))
  }

  def comput(data: Int, dataSet: List[Int]): List[Int] = dataSet match {
    case List() => List(data)
    case head :: tail => if (data <= head) data :: dataSet else head :: comput(data, tail)
  }
}

  

时间: 2024-11-05 12:19:24

scala冒泡排序的相关文章

【Scala编程】函数式风格编写排序算法

有关Scala编程实例 在刚开始学习一门编程语言的时候,总是想去写一些比较大的程序和项目,但是由于基础不扎实,往往欲速则不达.所以,只能一步一步来,通过一些经典的小例子来实践和锻炼,最终不断加深编程的技能,坚持下来,相信慢慢就能够变得熟练. 冒泡排序.选择排序.插入排序的一般写法 这三种排序方法没有太多要说的东西,这里的编程方式和指定式方式没什么差别. 这里之所以使用Array数据,因为Array数组是可变的对象序列,其元素值可以改变,而List类对象的元素是不可变的. 这里的写法不是函数式风格

Scala语法学习手册

1       快速入门... 2 1.1             分号... 2 1.2             常变量声明... 2 1.2.1         val常量... 2 1.2.2         var变量... 2 1.2.3         类型推导... 3 1.2.4         函数编程风格... 3 1.3             Range. 3 1.4             定义函数... 4 1.5             while.if 4 1.6

Play scala 7 一步一步QuickSort

1. 算法思想 如果一个待排序的数列,所有的数都已经在正确的位置上了,那么排序完毕. 先随便选一个数,把它放在正确的位置上.它左边是未排序的,右边也是未排序的. 此时,已经将在一个较长数列上排序的问题转化成了在两个较小数列上排序的问题. 参考:http://developer.51cto.com/art/201403/430986.htm 以数列 a = {6 , 1,  2, 7,  9,  3,  4,  5, 10 , 8} 为例 2. 为了将6放到正确的位置上(升序),我首先想到的是:从

Scala详解

1       快速入门... 4 1.1             分号... 4 1.2             常变量声明... 4 1.2.1         val常量... 4 1.2.2         var变量... 4 1.2.3         类型推导... 5 1.2.4         函数编程风格... 5 1.3             Range. 5 1.4             定义函数... 6 1.5             while.if6 1.6 

一、scala基本入门

[TOC] 一.scala概述 1.1 简介 ? scala是一种多范式的编程语言,其设计的初衷是要集成面向对象编程和函数式编程的各种特性.Scala运行于Java平台(Java虚拟机),并兼容现有的Java程序.它也能运行于CLDC配置的Java ME中.目前还有另一.NET平台的实现,不过该版本更新有些滞后.Scala的编译模型(独立编译,动态类加载)与Java和C#一样,所以Scala代码可以调用Java类库(对于.NET实现则可调用.NET类库). 1.2 scala安装和配置 ? sc

经典排序算法 - 冒泡排序Bubble sort

 原文出自于 http://www.cnblogs.com/kkun/archive/2011/11/23/bubble_sort.html 经典排序算法 - 冒泡排序Bubble sort 原理是临近的数字两两进行比较,按照从小到大或者从大到小的顺序进行交换, 这样一趟过去后,最大或最小的数字被交换到了最后一位, 然后再从头开始进行两两比较交换,直到倒数第二位时结束,其余类似看例子 例子为从小到大排序, 原始待排序数组| 6 | 2 | 4 | 1 | 5 | 9 | 第一趟排序(外循环) 第

算法 排序lowB三人组 冒泡排序 选择排序 插入排序

参考博客:基于python的七种经典排序算法   [经典排序算法][集锦]     经典排序算法及python实现 首先明确,算法的实质 是 列表排序.具体就是操作的列表,将无序列表变成有序列表! 一.排序的基本概念和分类 所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作.排序算法,就是如何使得记录按照要求排列的方法. 排序的稳定性: 经过某种排序后,如果两个记录序号同等,且两者在原无序记录中的先后秩序依然保持不变,则称所使用的排序方法是稳定的,反之是不稳定

Scala Study --- override

以前没使用过Scala, 其实我Java也是半截水平\无奈, 学Java的时候刚从C++中挣脱出来,发现Java无比优雅,但很快又对Java种种不信任程序员的设计感到受限. 直到, , 今天遇到了Scala\撒花 Scala的collection设计不能更赞!一段时间后打算专门写篇文章总结Scala,名字就叫"我为什么喜欢Scala!". 废话就不多说了,今天研究了一下Scala的override用法与特点. override --- one of the key words of S

php实现冒泡排序

一个程序应包括:对数据的描述:在程序中要指定数据的类型和数据的组织形式,即数据结构(data structure).对操作的描述:即操作步骤,也就是算法(algorithm).Nikiklaus Wirth提出的公式:程序=数据结构+算法作为一个程序员必须得懂点算法啊,就从最简单的开始吧=>冒泡排序 维基百科的说法 冒泡排序(英语:Bubble Sort,台湾另外一种译名为:泡沫排序)是一种简单的排序算法.它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.走访数列