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]