Advertisement
Guest User

Untitled

a guest
Feb 23rd, 2019
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.07 KB | None | 0 0
  1. from random import randint
  2. import timeit
  3. import matplotlib as mpl
  4. import matplotlib.pyplot as plt
  5. import itertools as it
  6.  
  7. listaNum = [10000,20000,30000,40000,50000]
  8. def geraLista(tam):
  9. lista = []
  10. i = 0
  11. while i < tam:
  12. n = randint(1,1*tam)
  13. if n not in lista:
  14. lista.append(n)
  15. i += 1
  16. return lista
  17.  
  18. def insertionSort(alist):
  19. for i in range(1,len(alist)):
  20. current = alist[i]
  21. while (i>0 and alist[i-1]>current):
  22. alist[i] = alist[i-1]
  23. i = i-1
  24. alist[i] = current
  25. return alist
  26.  
  27. mpl.use('Agg')
  28. def desenhaGrafico(x,y,ym,yp,xl = "Entradas", yl = "Saídas"):
  29. fig = plt.figure(figsize=(10, 8))
  30. ax = fig.add_subplot(111)
  31. ax.plot(x,y, label = "Medio Tempo")
  32. ax.plot(x,ym, label = "Melhor Tempo")
  33. ax.plot(x,yp, label = "Pior Tempo")
  34. ax.legend(bbox_to_anchor=(1, 1),bbox_transform=plt.gcf().transFigure)
  35. plt.ylabel(yl)
  36. plt.xlabel(xl)
  37. fig.savefig('graph.png')
  38.  
  39.  
  40. permutacoes = list(it.permutations([1,2,3,4,5,6],6))
  41. listaX = list(permutacoes)
  42.  
  43. tempos = []
  44.  
  45. for i in listaX:
  46.  
  47. tempo = timeit.timeit("insertionSort({})".format(list(i)),setup="from __main__ import insertionSort",number=1)
  48.  
  49. tempos.append(tempo)
  50.  
  51. indexPiorCaso = tempos.index(max(tempos))
  52. indexMelhorCaso = tempos.index(min(tempos))
  53.  
  54. print("Pior caso")
  55. print(permutacoes[indexPiorCaso])
  56. print(max(tempos))
  57. print("Melhor caso")
  58. print(permutacoes[indexMelhorCaso])
  59. print(min(tempos))
  60.  
  61.  
  62. tempos = []
  63. temposMelhor = []
  64. temposPior = []
  65. for i in listaNum:
  66. lista = geraLista(i)
  67. melhor = sorted(lista)
  68. pior = sorted(lista, reverse=True)
  69.  
  70. tempo = timeit.timeit("insertionSort({})".format(lista),setup="from __main__ import insertionSort",number=1)
  71. tempos.append(tempo)
  72.  
  73. tempoMelhor = timeit.timeit("insertionSort({})".format(melhor),setup="from __main__ import insertionSort",number=1)
  74. temposMelhor.append(tempoMelhor)
  75.  
  76. tempoPior = timeit.timeit("insertionSort({})".format(pior),setup="from __main__ import insertionSort",number=1)
  77. temposPior.append(tempoPior)
  78.  
  79.  
  80. desenhaGrafico(listaNum, tempos, temposMelhor, temposPior)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement