summaryrefslogtreecommitdiff
path: root/test/pending/shootout/heapsort.scala
diff options
context:
space:
mode:
Diffstat (limited to 'test/pending/shootout/heapsort.scala')
-rw-r--r--test/pending/shootout/heapsort.scala72
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;
- }
-
-}