Quellcode durchsuchen

Update to python 3

Ursprung
Commit
0e94efd6bb
1 geänderte Dateien mit 28 neuen und 32 gelöschten Zeilen
  1. 28
    32
      sorting.py

+ 28
- 32
sorting.py Datei anzeigen

@@ -25,41 +25,37 @@ def shellSort(lista):
25 25
 	#definan el algoritmo de ordenamiento shellsort
26 26
 	return lista
27 27
 
28
-maxValor=1000 	#define el valor maximo de los elementos de la lista
29
-largoLista=1000 #define el largo de las listas a ordenar
30
-veces=100 		#define las veces que se va a hacer el ordenamiento 
31
-
32
-acumulaMerge=0 	#variable para acumular el tiempo de ejecucion del mergesort
33
-acumulaHeap=0 	#variable para acumular el tiempo de ejecucion del heapsort
34
-acumulaQuick=0 	#variable para acumular el tiempo de ejecucion del quicksort
35
-acumulaShell=0 	#variable para acumular el tiempo de ejecucion del shellsort
28
+# timeCode function/thunk -> (duration, return value)
29
+# measures the time it takes for a function/thunk to return
30
+def timeCode(fn):
31
+	t1 = time.perf_counter()
32
+	res = fn()
33
+	duration = time.perf_counter() - t1
34
+	return (duration, res)
35
+
36
+maxValor = 1000 	#define el valor maximo de los elementos de la lista
37
+largoLista = 1000 #define el largo de las listas a ordenar
38
+veces = 100 		#define las veces que se va a hacer el ordenamiento
39
+
40
+acumulaMerge = 0 	#variable para acumular el tiempo de ejecucion del mergesort
41
+acumulaHeap = 0 	#variable para acumular el tiempo de ejecucion del heapsort
42
+acumulaQuick = 0 	#variable para acumular el tiempo de ejecucion del quicksort
43
+acumulaShell = 0 	#variable para acumular el tiempo de ejecucion del shellsort
36 44
 
37 45
 for i in range(veces):
38 46
 	mergelista = [randint(0,maxValor) for r in range(largoLista)] #creamos una lista con valores al azar
39
-	heaplista=list(mergelista)
40
-	quicklista=list(mergelista)
41
-	searchlista=list(mergelista)
47
+	heaplista = list(mergelista)
48
+	quicklista = list(mergelista)
49
+	searchlista = list(mergelista)
42 50
 
43
-	t1 = time.clock() 				#seteamos el tiempo al empezar
44
-	mergeSort(mergelista) 				#ejecutamos el algoritmo mergeSort
45
-	acumulaMerge+=time.clock()-t1 	#acumulamos el tiempo de ejecucion
46
-	
47
-	t1 = time.clock()				#seteamos el tiempo al empezar
48
-	heapSort(heaplista)					#ejecutamos el algoritmo heapSort
49
-	acumulaHeap+=time.clock()-t1 	#acumulamos el tiempo de ejecucion
50
-	
51
-	t1 = time.clock()				#seteamos el tiempo al empezar
52
-	quickSort(quicklista)				#ejecutamos el algoritmo quickSort
53
-	acumulaQuick+=time.clock()-t1 	#acumulamos el tiempo de ejecucion
54
-	
55
-	t1 = time.clock()				#seteamos el tiempo al empezar
56
-	shellSort(searchlista)				#ejecutamos el algoritmo shellSort
57
-	acumulaShell+=time.clock()-t1 	#acumulamos el tiempo de ejecucion
51
+	acumulaMerge += timeCode(lambda: mergeSort(mergelista))[0]
52
+	acumulaHeap += timeCode(lambda: heapSort(heaplista))[0]
53
+	acumulaQuick += timeCode(lambda: quickSort(quicklista))[0]
54
+	acumulaShell += timeCode(lambda: shellSort(searchlista))[0]
58 55
 
59 56
 #imprimos los resultados
60
-print "Promedio de tiempo de ejecucion de "+ str(veces) +" listas de largo " + str(largoLista)
61
-print "MergeSort " + str(acumulaMerge/veces) + " segundos"
62
-print "HeapSort " + str(acumulaHeap/veces) + " segundos"
63
-print "QuickSort " + str(acumulaQuick/veces) + " segundos"
64
-print "ShellSort " + str(acumulaShell/veces) + " segundos"
65
-
57
+print(f"Promedio de tiempo de ejecucion de {str(veces)} listas de largo {str(largoLista)}")
58
+print(f"MergeSort {str(acumulaMerge / veces)} segundos")
59
+print(f"HeapSort {str(acumulaHeap / veces)} segundos")
60
+print(f"QuickSort {str(acumulaQuick / veces)} segundos")
61
+print(f"ShellSort {str(acumulaShell / veces)} segundos")