daily pastebin goal
17%
SHARE
TWEET

Untitled

a guest Aug 10th, 2018 59 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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)
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top