Skip to content

Instantly share code, notes, and snippets.

@amarynets
Created February 28, 2017 22:22
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save amarynets/deeef1e84e211cc9600e2b4bce59f042 to your computer and use it in GitHub Desktop.
Save amarynets/deeef1e84e211cc9600e2b4bce59f042 to your computer and use it in GitHub Desktop.
qsort
a = [12,545,2,67,12,89,234,76,1,0,90]
def partition(arr, l, r):
x = arr[r]
i = l
for j in range(l, r):
if arr[j] <= x:
arr[i], arr[j] = arr[j], arr[i]
i += 1
arr[i], arr[r] = arr[r], arr[i]
return i
def qsort(array, left, right):
if left < right:
q = partition(array, left, right)
qsort(array, left, q - 1)
qsort(array, q + 1, right)
return array
print(qsort(a, 0, len(a)-1))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment