summary refs log tree commit diff stats
path: root/tests/accept/compile/tquicksort.nim
blob: 421564ecd8802f9c09d54da7743e0f13af9cc56b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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])

var
    list: seq[int]
        
list = QuickSort(@[89,23,15,23,56,123,356,12,7,1,6,2,9,4,3])
echoSeq(list)