summary refs log tree commit diff stats
path: root/tests/misc/tquicksort.nim
diff options
context:
space:
mode:
Diffstat (limited to 'tests/misc/tquicksort.nim')
-rw-r--r--tests/misc/tquicksort.nim23
1 files changed, 23 insertions, 0 deletions
diff --git a/tests/misc/tquicksort.nim b/tests/misc/tquicksort.nim
new file mode 100644
index 000000000..017c73fbc
--- /dev/null
+++ b/tests/misc/tquicksort.nim
@@ -0,0 +1,23 @@
+proc QuickSort(list: seq[int]): seq[int] =
+    if len(list) == 0:
+        return @[]
+    var pivot = list[0]
+    var left: seq[int] = @[]
+    var right: seq[int] = @[]
+    for i in low(list)..high(list):
+        if list[i] < pivot:
+            left.add(list[i])
+        elif list[i] > pivot:
+            right.add(list[i])
+    result = QuickSort(left) &
+      pivot &
+      QuickSort(right)
+
+proc echoSeq(a: seq[int]) =
+    for i in low(a)..high(a):
+        echo(a[i])
+
+let list = QuickSort(@[89,23,15,23,56,123,356,12,7,1,6,2,9,4,3])
+let expected = @[1, 2, 3, 4, 6, 7, 9, 12, 15, 23, 56, 89, 123, 356]
+
+doAssert list == expected