21 lines
520 B
Python
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)
|
|
|
|
|