View difference between Paste ID: pGey5PUi and FkVyQPBG
SHOW: | | - or go back to the newest paste.
1
def qsort2(array):
2-
    array,pI = partition(array)
2+
    try:
3-
    return partition(array[:pI])[0]+[array[pI]]+partition(array[pI+1:])[0]
3+
        array,pI = partition(array)
4
        return qsort2(array[:pI])+[array[pI]]+qsort2(array[pI+1:])
5
    except:
6
        return array
7
8
def partition(array):
9
    print("before: ",array)
10
    if len(array) > 1:
11
        pivot = array[0]
12
        pivIndex = 0
13
        i,j = 1,1
14
        while j < len(array) - 1:
15
            if array[j] < pivot:
16
                temp = array[i]
17
                array[i] = array[j]
18
                array[j] = temp
19
                i += 1
20
            j += 1
21
        temp = array[i-1]
22
        array[i-1] = array[pivIndex]
23
        array[pivIndex] = temp
24
        pivIndex = i-1
25
        print("after",array)
26
        return array,pivIndex
27
    else:
28
        print("after",array)
29
        return array
30
31
print([3,8,2,5,1,4,7,6])
32
print(qsort2([3,8,2,5,1,4,7,6]))