diff options
Diffstat (limited to 'tests/misc/tquicksort.nim')
-rw-r--r-- | tests/misc/tquicksort.nim | 23 |
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 |