def partition(arr, start, end):
pivot = start
greater = start + 1
less = end
while greater <= less:
while greater <= end and arr[greater] <= arr[pivot]:
greater += 1
while less > start and arr[less] >= arr[pivot]:
less -= 1
if greater < less:
arr[greater], arr[less] = arr[less], arr[greater]
else:
arr[pivot], arr[less] = arr[less], arr[pivot]
return less
def quickSort(arr, start, end):
if start >= end:
return
k = partition(arr, start, end)
quickSort(arr, start, k - 1)
quickSort(arr, k + 1, end)
arr = [31, 53, 75, 42, 15, 64, 31] #정렬할 배열
print("[정렬되지 않은 배열]")
print(arr)
print()
start = 0
end = len(arr) - 1
quickSort(arr, start, end)
print("[정렬 완료된 배열]")
print(arr)
[정렬되지 않은 배열]
[31, 53, 75, 42, 15, 64, 31]
[정렬 완료된 배열]
[15, 31, 31, 42, 53, 64, 75]