Advertisement
Guest User

Untitled

a guest
Mar 31st, 2015
225
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.62 KB | None | 0 0
  1. import random
  2.  
  3. comparisons = 0
  4.  
  5. def getPivot(A, l, r):
  6. return random.choice(A[l:r+1])
  7.  
  8. def partition(A, l, r):
  9. global comparisons
  10. comparisons += (r-l)
  11. A[l], A[r] = A[r], A[l]
  12. p = A[l]
  13. i = l+1
  14. for j in range(l, r+1):
  15. if A[j] < p:
  16. A[i], A[j] = A[j], A[i]
  17. i += 1
  18. A[l], A[i-1] = A[i-1], A[l]
  19.  
  20. return (i-2, i)
  21.  
  22. def qsort(A, l, r):
  23. if l >= r:
  24. return
  25. else:
  26. (i,j) = partition(A, l, r)
  27. qsort(A, l, i)
  28. qsort(A, j, r)
  29. return
  30.  
  31.  
  32. A = map(int,open('QuickSort.txt').read().split('\r\n')[:-1])
  33. qsort(A,0,len(A)-1)
  34. print comparisons
  35. #print A
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement