2017-04-18 4 views
2
import random 
import time 

def insertion_Sort(A): 

    if len(A) == 1 : 
     return A 
    else : 
     S = [A[0]] 
     for i in range(1,len(A)): 
      j = i-1 
      while j >= 0: 
       if A[i] > S[j]: 
        S.insert((j+1),A[i]) 
        break 
       else : 
        j = j-1 
      if j==-1: 
        S.insert(0,A[i]) 
     return S 




def quick_Sort(A): 

    if not A: 
     return [] 
    else: 
     pivot = random.randint(0, len(A) - 1) 
     pivot_index = A[pivot] 
     L = quick_Sort([l for i,l in enumerate(A) 
          if l <= pivot_index and i != pivot]) 
     R = quick_Sort([r for r in A if r > pivot_index]) 
     return L + [pivot_index] + R 





RN = [random.randrange(0,10000) for k in range(100)] 

Ceci est le code à propos de quick_sort et insertion_sort.Comment puis-je comparer le nombre de performances?

Je veux comparer deux choses, le nombre de performer d'insertion_sort (RN) et le nombre de performer de quick_sort (RN).

Comment puis-je comparer ces choses?

+1

Utilisation de 'timeit' pour la vitesse comp –

+2

Possible duplicate de [Comment comparer les fonctions python en termes de performance?] (Http://stackoverflow.com/questions/7956834/how-do-i-compare-python- fonctions-in-terms-of-performance) –

Répondre

0

Il existe un module python appelé timeit qui correspond exactement à ce que vous cherchez. Vous pouvez l'utiliser comme suit:

from timeit import timeit 
print(timeit('insertion_Sort(params)','from __main__ import insertion_Sort',number=100)) 
print(timeit('quick_Sort(params)','from __main__ import quick_Sort',number=100)) 

Et vous remplacez params avec la valeur de votre paramètre A et number=100 avec le nombre de fois que vous le voulez à tester.

+0

Veuillez lire les commentaires sous la question avant d'écrire une réponse –