Quicksort in Python

Da ich mich jetzt seit einigen Tagen mit Python auseinander gesetzt habe, hab' ich mir zu Übungszwecken ein Quicksort geschrieben:

 #!/usr/bin/python  
import random
###############################################
def partition(A,l,r):
pivot = A[l]
i = l+1
j = r
while j > i:
while (A[i] <= pivot) and (i < r):
i = i + 1
while (A[j] >= pivot) and (j > l):
j = j - 1
if i < j:
swap(A,i,j)
swap(A,l,j)
return j
##############################################
def quicksort(A,l,r):
if l < r:
m = partition(A,l,r)
quicksort(A,l,m-1)
quicksort(A,m+1,r)
else:
return
#############################################
def swap(A,a,b):
t = A[a]
A[a] = A[b]
A[b] = t
#############################################
A = []
sr = random.SystemRandom()
for i in range(0,50,1):
A.append(sr.randint(1,3000))
print A
quicksort(A,0,len(A)-1)
print A

Verbesserungsvorschläge sind ausdrücklich erwünscht! 😉

Schreibe einen Kommentar