25 lines
502 B
Python
25 lines
502 B
Python
def qsort(A, i, j):
|
|
if i >= j:
|
|
return
|
|
p = partition(A, i, j)
|
|
qsort(A, i, p-1)
|
|
qsort(A, p+1, j)
|
|
|
|
|
|
def partition(A, i, j):
|
|
pivot = A[j]
|
|
p = i
|
|
for q in range(i, j):
|
|
if A[q] < pivot:
|
|
A[p], A[q] = A[q], A[p]
|
|
p += 1
|
|
A[p], A[j] = A[j], A[p]
|
|
return p
|
|
|
|
|
|
if __name__ == "__main__":
|
|
A = [9, 7, 1, 8, 5, 3, 6, 2, 4]
|
|
print(A) # [9, 7, 1, 8, 5, 3, 6, 2, 4]
|
|
qsort(A, 0, len(A)-1)
|
|
print(A) # [1, 2, 3, 4, 5, 6, 7, 8, 9]
|