Advertisement
Guest User

Untitled

a guest
Dec 9th, 2019
146
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.92 KB | None | 0 0
  1. from random import randint
  2. def MakeLst(n):
  3. lst = []
  4. for i in range(n):
  5. lst.append(randint(-100, 100))
  6. return lst
  7. def QuickSort(lst, left, right):
  8. i = left
  9. j = right
  10. compares = 0
  11. replacements = 0
  12. mid = lst[(left+right)//2]
  13. while i<j:
  14. while lst[i]<mid:
  15. i+=1
  16. compares += 1
  17. while lst[j]>mid:
  18. j-=1
  19. compares += 1
  20. if i<=j:
  21. lst[i], lst[j] = lst[j], lst [i]
  22. i+=1
  23. j-=1
  24. compares += 1
  25. replacements += 1
  26. if j > left:
  27. QuickSort(lst, left, j)
  28. compares += QuickSort(lst, left, j)[1]
  29. replacements += QuickSort(lst, left, j)[2]
  30. if right>i:
  31. QuickSort(lst, i, right)
  32. compares += QuickSort(lst, i, right)[1]
  33. replacements += QuickSort(lst, i, right)[2]
  34. return lst, compares, replacements
  35. lst = MakeLst(5000)
  36. print (QuickSort(lst, 0, len(lst)-1))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement