123456789101112131415161718192021222324 |
- 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
|