mirror of
https://github.com/nim-lang/Nim.git
synced 2025-12-30 01:44:37 +00:00
24 lines
630 B
Nim
24 lines
630 B
Nim
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
|