|
@@ -8,6 +8,7 @@ Al final se imprimen los promedios de cada algortimo
|
8
|
8
|
"""
|
9
|
9
|
from random import randint
|
10
|
10
|
import time
|
|
11
|
+import utils.qsortUtils as qsortUtils
|
11
|
12
|
|
12
|
13
|
def mergeSort(lista):
|
13
|
14
|
#definan el algoritmo de ordenamiento mergesort
|
|
@@ -67,8 +68,8 @@ def heapSort(lista):
|
67
|
68
|
return lista
|
68
|
69
|
|
69
|
70
|
def quickSort(lista):
|
70
|
|
- #definan el algoritmo de ordenamiento quicksort
|
71
|
|
- return lista
|
|
71
|
+ # Se aplica quicksort a la lista desde el primer elemento hasta el último
|
|
72
|
+ return qsortUtils.qSort(lista, 0, len(lista) - 1)
|
72
|
73
|
|
73
|
74
|
def shellSort(lista):
|
74
|
75
|
#definan el algoritmo de ordenamiento shellsort
|
|
@@ -103,6 +104,8 @@ veces=100 #define las veces que se va a hacer el ordenamiento
|
103
|
104
|
acumulaMerge=0 #variable para acumular el tiempo de ejecucion del mergesort
|
104
|
105
|
acumulaHeap=0 #variable para acumular el tiempo de ejecucion del heapsort
|
105
|
106
|
acumulaQuick=0 #variable para acumular el tiempo de ejecucion del quicksort
|
|
107
|
+
|
|
108
|
+
|
106
|
109
|
acumulaShell=0 #variable para acumular el tiempo de ejecucion del shellsort
|
107
|
110
|
|
108
|
111
|
for i in range(veces):
|
|
@@ -111,25 +114,25 @@ for i in range(veces):
|
111
|
114
|
quicklista=list(mergelista)
|
112
|
115
|
searchlista=list(mergelista)
|
113
|
116
|
|
114
|
|
- t1 = time.clock() #seteamos el tiempo al empezar
|
|
117
|
+ t1 = time.perf_counter() #seteamos el tiempo al empezar
|
115
|
118
|
mergeSort(mergelista) #ejecutamos el algoritmo mergeSort
|
116
|
|
- acumulaMerge+=time.clock()-t1 #acumulamos el tiempo de ejecucion
|
117
|
|
-
|
118
|
|
- t1 = time.clock() #seteamos el tiempo al empezar
|
|
119
|
+ acumulaMerge+=time.perf_counter()-t1 #acumulamos el tiempo de ejecucion
|
|
120
|
+
|
|
121
|
+ t1 = time.perf_counter() #seteamos el tiempo al empezar
|
119
|
122
|
heapSort(heaplista) #ejecutamos el algoritmo heapSort
|
120
|
|
- acumulaHeap+=time.clock()-t1 #acumulamos el tiempo de ejecucion
|
121
|
|
-
|
122
|
|
- t1 = time.clock() #seteamos el tiempo al empezar
|
|
123
|
+ acumulaHeap+=time.perf_counter()-t1 #acumulamos el tiempo de ejecucion
|
|
124
|
+
|
|
125
|
+ t1 = time.perf_counter() #seteamos el tiempo al empezar
|
123
|
126
|
quickSort(quicklista) #ejecutamos el algoritmo quickSort
|
124
|
|
- acumulaQuick+=time.clock()-t1 #acumulamos el tiempo de ejecucion
|
125
|
|
-
|
126
|
|
- t1 = time.clock() #seteamos el tiempo al empezar
|
|
127
|
+ acumulaQuick+=time.perf_counter()-t1 #acumulamos el tiempo de ejecucion
|
|
128
|
+
|
|
129
|
+ t1 = time.perf_counter() #seteamos el tiempo al empezar
|
127
|
130
|
shellSort(searchlista) #ejecutamos el algoritmo shellSort
|
128
|
|
- acumulaShell+=time.clock()-t1 #acumulamos el tiempo de ejecucion
|
|
131
|
+ acumulaShell+=time.perf_counter()-t1 #acumulamos el tiempo de ejecucion
|
129
|
132
|
|
130
|
133
|
#imprimos los resultados
|
131
|
|
-print "Promedio de tiempo de ejecucion de "+ str(veces) +" listas de largo " + str(largoLista)
|
132
|
|
-print "MergeSort " + str(acumulaMerge/veces) + " segundos"
|
133
|
|
-print "HeapSort " + str(acumulaHeap/veces) + " segundos"
|
134
|
|
-print "QuickSort " + str(acumulaQuick/veces) + " segundos"
|
135
|
|
-print "ShellSort " + str(acumulaShell/veces) + " segundos"
|
|
134
|
+print (f"Promedio de tiempo de ejecucion de {veces} listas de largo {largoLista}")
|
|
135
|
+print (f"MergeSort {str(acumulaMerge/veces)} segundos")
|
|
136
|
+print (f"HeapSort {str(acumulaHeap/veces)} segundos")
|
|
137
|
+print (f"QuickSort {str(acumulaQuick/veces)} segundos")
|
|
138
|
+print (f"ShellSort {str(acumulaShell/veces) }segundos")
|