import scala.util.Random
/**
* Created by fhqplzj on 16-7-7 at 下午9:04.
*/
object InsertionSort {
def isort[T](xs: List[T])(implicit ord: Ordering[T]): List[T] = xs match {
case List() => xs
case x :: xs1 => insert(x, isort(xs1))(ord)
}
def insert[T](x: T, xs: List[T])(implicit ord: Ordering[T]): List[T] = xs match {
case List() => List(x)
case y :: ys => if (ord.lt(x, y)) x :: xs else y :: insert(x, ys)
}
def main(args: Array[String]) {
val random: Random = new Random(System.nanoTime())
// 原始数据
val data: List[Int] = List.tabulate(10)(i => random.nextInt(100))
println("data = " + data)
// 升序
val ascend: List[Int] = isort(data)
println("ascend = " + ascend)
// 降序
val descend: List[Int] = isort(data)(Ordering.Int.reverse)
println("descend = " + descend)
}
}
Scala插入排序
最新推荐文章于 2020-07-13 00:48:52 发布