tlacyl/python/quicksort.py

21 lines
520 B
Python

def partition(arr, lo, hi):
pivot_value = arr[hi]
current_index = lo - 1
for i in range(lo, hi):
if arr[i] <= pivot_value:
current_index += 1
arr[current_index], arr[i] = arr[i], arr[current_index]
current_index += 1
arr[hi] = arr[current_index]
arr[current_index] = pivot_value
return current_index
def quicksort(arr, lo, hi):
if lo < hi:
part = partition(arr, lo, hi)
quicksort(arr, lo, part - 1)
quicksort(arr, part + 1, hi)