summaryrefslogtreecommitdiff
path: root/test/files/pos/sort1.scala
diff options
context:
space:
mode:
Diffstat (limited to 'test/files/pos/sort1.scala')
-rw-r--r--test/files/pos/sort1.scala33
1 files changed, 33 insertions, 0 deletions
diff --git a/test/files/pos/sort1.scala b/test/files/pos/sort1.scala
new file mode 100644
index 0000000000..0a75a87272
--- /dev/null
+++ b/test/files/pos/sort1.scala
@@ -0,0 +1,33 @@
+module test {
+
+ type String = java.lang.String;
+
+ def while(def c: Boolean)(def b: Unit): Unit =
+ if (c) { b ; while(c)(b) }
+ else ();
+
+ def sort(a: Array[Double]): Unit = {
+
+ def swap(i: Int, j: Int): Unit = {
+ val t = a(i) ; val u = a.apply(j) ; a(i) = u ; a(j) = t
+ }
+
+ def sort1(l: Int, r: Int): Unit = {
+ val pivot = a((l + r) / 2);
+ var i = l, j = r;
+ while (i <= j) {
+ while (a(i) < pivot) { i = i + 1 }
+ while (a(j) > pivot) { j = j - 1 }
+ if (i <= j) {
+ swap(i, j);
+ i = i + 1;
+ j = j - 1;
+ }
+ }
+ if (l < j) sort1(l, j);
+ if (j < r) sort1(i, r);
+ }
+
+ sort1(0, a.length - 1);
+ }
+} \ No newline at end of file