코드
array = [5, 7, 9, 0, 3, 1, 6, 2, 4, 8]
def quick_sort(array, start_idx, end_idx):
if end_idx <= start_idx:
return
pivot = start_idx
left_idx = start_idx + 1
right_idx = end_idx
while left_idx <= right_idx:
while left_idx <= end_idx and array[left_idx] <= array[pivot]:
left_idx += 1
while start_idx < right_idx and array[right_idx] >= array[pivot]:
right_idx -= 1
if left_idx > right_idx:
array[right_idx] , array[pivot] = array[pivot], array[right_idx]
else:
array[left_idx] , array[right_idx] = array[right_idx], array[left_idx]
quick_sort(array, start_idx, right_idx - 1)
quick_sort(array, right_idx + 1, end_idx)
quick_sort(array, 0, len(array) - 1)
print(array)