Advertisement
Guest User

Untitled

a guest
Mar 28th, 2020
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.98 KB | None | 0 0
  1. from math import floor
  2. from matplotlib import pyplot as plt
  3. import random
  4.  
  5. def merge_sort(lista):
  6. if len(lista)<=1:
  7. return lista
  8. lewa = []
  9. prawa = []
  10. for index, value in enumerate(lista):
  11. if index < len(lista)/2:
  12. lewa.append(value)
  13. else:
  14. prawa.append(value)
  15.  
  16. lewa = merge_sort(lewa)
  17. prawa = merge_sort(prawa)
  18. return merge(lewa, prawa)
  19.  
  20. def merge(lewa, prawa):
  21. wynik = []
  22. while lewa and prawa:
  23. if lewa[0] <= prawa[0]:
  24. wynik.append(lewa.pop(0))
  25. else:
  26. wynik.append(prawa.pop(0))
  27. while lewa:
  28. wynik.append(lewa.pop(0))
  29. while prawa:
  30. wynik.append(prawa.pop(0))
  31. return wynik
  32.  
  33. def start():
  34. wyniki= []
  35. i = 1
  36. for i in range(1000):
  37. lista = list(range(i))
  38. random.shuffle(lista)
  39. wyniki.append(merge_sort(lista))
  40. return wyniki
  41.  
  42. wyniki = start()
  43. print(wyniki)
  44. plt.plot(wyniki)
  45. plt.show()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement