scala实现快速排序】的更多相关文章

def quickSort1(array: Array[Int]): Array[Int] = { def swap(x: Int, y: Int): Unit = { val tmp = array(x) array(x) = array(y) array(y) = tmp } def qSort(l: Int, r: Int) { if (l < r) { var m = l for (i <- l + 1 to r) { if (array(i) < array(l)) { m +…
scala> def qSort(a: List[Int]): List[Int] = { | ) a | else qSort( a.filter(a.head > _ )) ++ | a.filter(a.head == _ ) ++ | qSort(a.filter(a.head < _ )) | } qSort: (a: List[Int])List[Int] scala> scala> qSort(List(,,,,,,,)) res25: List[Int] =…
Scala 快排 Scala 基本思想:经过一趟排序,把待排对象分成两个独立的部分,一部分的数据大(小)于另一部分,同理,对子对象进行如此处理,以达到所有数据都有序.   package student.scala object Sort extends App { def quicksort[T <% Ordered[T]](xs:List[T]):List[T] = { if(xs.length <= 1 ) xs else { quicksort ( xs filter (xs(0) &…
1.冒泡排序 def sort(list: List[Int]): List[Int] = list match { case List() => List() case head :: tail => compute(head, sort(tail)) } def compute(data: Int, dataSet: List[Int]): List[Int] = dataSet match { case List() => List(data) case head :: tail…
def qSort(a:List[Int]):List[Int]={ if(a.length < 2) a else qSort(a.filter(a.head > _)) ++ a.filter(a.head == _) ++ qSort(a.filter(a.head < _)) } qSort(List(9,3,2,6,3,7,8,3,6,9,21))…
以递归方式思考 递归通过灵巧的函数定义,告诉计算机做什么.在函数式编程中,随处可见递归思想的运用.下面给出几个递归函数的例子: object RecursiveExample extends App{ // 数列求和例子 def sum(xs: List[Int]): Int = if (xs.isEmpty) 1 else xs.head + sum(xs.tail) // 求最大值例子 def max(xs: List[Int]): Int = if (xs.isEmpty) throw n…
/* 学慕课网上<Scala程序设计>课程跟着敲的代码 作为代码参考也是很好的 在scala_ide.org上下载eclipse IDE,新建一个worksheet,就可以像在xcode的playground那样玩了, 就是如下所示,写变量直接在右边显示结果 链接:scala集合文档http://docs.scala-lang.org/zh-cn/overviews/collections/introduction 函数式编程,核心是状态不变 */ var x = 1 //> x : I…
1.Scala中提供了一种数据结构-数组,其中存储相同类型的元素的固定大小的连续集合.数组用于存储数据的集合,但它往往是更加有用认为数组作为相同类型的变量的集合 2 声明数组变量: 要使用的程序的数组,必须声明一个变量来引用数组,必须指定数组变量可以引用的类型.下面是语法声明数组变量: var z:Array[String] = new Array[String](3) or var z = new Array[String](3) or var z = Array("Zara", &…
面向对象编程是一种自顶向下的程序设计方法.用面向对象方法构造软件时,我们将代码以名词(对象)做切割,每个对象有某种形式的表示服(self/this).行为(方法).和状态(成员变量).识别出名词并且定义出他们的行为之后,再定义出名词之间的交互. 函数式编程方法通过组合和应用函数来构造软件.纯粹是对输入进行操作,产生结果.所有变量都被认为是不可变的. Spring的JDBCTemplate类上的查询方法 public interface JdbcTemplate{ List query(Prepa…
package edu.snnu.test object list2 { //把字符串转化成一个char类型的list "99 Red Balloons".toList //> res0: List[Char] = List(9, 9, , R, e, d, , B, a, l, l, o, o, n, s) "99 Red Balloons".toList.filter(x => Character.isDigit(x)) //> res1: L…