Guest User

Untitled

a guest
Aug 10th, 2018
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.64 KB | None | 0 0
  1. from random import randint
  2.  
  3. from timeit import timeit
  4.  
  5. import matplotlib.pyplot as plt
  6.  
  7. def desenhaGrafico(time,time2, tam):
  8. plt.title("quick Sort")
  9. plt.plot(tam, time, label="Tempo Médio", color = 'blue')
  10. plt.plot(tam, time2 , label="Pior Tempo", color='red')
  11. plt.legend(bbox_to_anchor=(1, 1), bbox_transform=plt.gcf().transFigure)
  12. xl = "N"
  13. yl = "Tempo"
  14. plt.ylabel(yl)
  15. plt.xlabel(xl)
  16. plt.show()
  17.  
  18. def geraLista(tam):
  19. lista = []
  20. for i in range(tam):
  21. lista.append(randint(1,1*tam))
  22. return lista
  23.  
  24. def geraListaInversa(tam):
  25. lista=[]
  26. for i in range(tam,0,-1):
  27. lista.append(i)
  28. return lista
  29.  
  30. def quick_sort(lista):
  31. if len(lista) <= 1:
  32. return lista
  33.  
  34. u = int(len(lista)/2)
  35. pivo = lista[u]
  36.  
  37. meio=[]
  38. esquerda=[]
  39. direita=[]
  40.  
  41. for i in lista:
  42. if i == pivo:
  43. meio.append(i)
  44. elif i < pivo:
  45. esquerda.append(i)
  46. else:
  47. direita.append(i)
  48.  
  49. return quick_sort(esquerda) + meio + quick_sort(direita)
  50.  
  51.  
  52. tam = [1000,10000,20000,30000,40000,50000,100000]
  53.  
  54. def caso_medio():
  55. temp=[]
  56. for i in tam:
  57. lista=geraLista(i)
  58.  
  59. tempo = timeit("quick_sort({})".format(lista),setup="from __main__ import quick_sort",number=1)
  60. temp.append(tempo)
  61. print(tempo)
  62.  
  63. print('\n')
  64. return temp
  65.  
  66. def pior_caso():
  67. temp=[]
  68. for i in tam:
  69. lista=geraListaInversa(i)
  70.  
  71. tempo = timeit("quick_sort({})".format(lista),setup="from __main__ import quick_sort",number=1)
  72. temp.append(tempo)
  73. print(tempo)
  74. return temp
  75.  
  76. desenhaGrafico(caso_medio(), pior_caso(), tam)
Add Comment
Please, Sign In to add comment