diff options
Diffstat (limited to 'test/pending/shootout/heapsort.scala')
-rw-r--r-- | test/pending/shootout/heapsort.scala | 72 |
1 files changed, 0 insertions, 72 deletions
diff --git a/test/pending/shootout/heapsort.scala b/test/pending/shootout/heapsort.scala deleted file mode 100644 index 59b1fe27cb..0000000000 --- a/test/pending/shootout/heapsort.scala +++ /dev/null @@ -1,72 +0,0 @@ -/* The Computer Language Shootout - http://shootout.alioth.debian.org/ - contributed by Isaac Gouy (Scala novice) -*/ - -object heapsort { - def main(args: Array[String]) = { - val n = toPositiveInt(args); - - val numbers = new Array[Double](n+1); - for (i <- Iterator.range(1,n+1)) - numbers(i) = generate(100.0); - - heapsort(n, numbers); - - Console.printf("{0,number,#.000000000}\n", numbers(n)); - } - - - def heapsort(n: Int, ra: Array[Double]): Unit = { - var l = 0; var j = 0; var ir = 0; var i = 0; - var rra = 0.0d; - - if (n < 2) return; - l = (n >> 1) + 1; - ir = n; - while (true) { - if (l > 1) { l = l-1; rra = ra(l); } - else { - rra = ra(ir); - ra(ir) = ra(1); - ir = ir-1; - if (ir == 1) { - ra(1) = rra; - return; - } - } - i = l; - j = l << 1; - while (j <= ir) { - if (j < ir && ra(j) < ra(j+1)) { j = j+1; } - if (rra < ra(j)) { - ra(i) = ra(j); - i = j; - j = j + i; - } - else j = ir + 1; - } - ra(i) = rra; - } - } - - - private val IM = 139968; - private val IA = 3877; - private val IC = 29573; - private var seed = 42; - - private def generate(max: Double) = { - seed = (seed * IA + IC) % IM; - max * seed / IM; - } - - - private def toPositiveInt(s: Array[String]) = { - val i = - try { Integer.parseInt(s(0)); } - catch { case _ => 1 } - if (i>0) i; else 1; - } - -} |