Quicksort Implementation

Quicksort Implementation#

The quicksort implementation is very straightforward! The whole thing is below.

import random

N = 10
array = [random.randint(0,100) for _ in range(N)]
print(array)
[6, 19, 2, 52, 8, 5, 95, 88, 92, 92]
def partition(A, start, end):
    pivot = A[end-1]
    i = start
    for j in range(start, end-1):
        if A[j] < pivot:
            A[i], A[j] = A[j], A[i]
            i += 1
    A[i], A[end-1] = A[end-1], A[i]
    return i

def quicksort(A, start, end):
    if start>=end:
        return
    pivot = partition(A, start, end)
    quicksort(A, start, pivot)
    quicksort(A, pivot+1, end)
quicksort(array, 0, len(array))
print(array)
[2, 5, 6, 8, 19, 52, 88, 92, 92, 95]