|
@@ -17,8 +17,31 @@ def heapSort(lista):
|
17
|
17
|
#definan el algoritmo de ordenamiento heapsort
|
18
|
18
|
return lista
|
19
|
19
|
|
20
|
|
-def quickSort(lista):
|
|
20
|
+"""
|
|
21
|
+Esta implementación de la función partition, relacionada a quicksort fue extraida de geeksforgeeks.org Oct 4, 2022
|
|
22
|
+https://www.geeksforgeeks.org/quick-sort/
|
|
23
|
+"""
|
|
24
|
+def partition(lista, low, high):
|
|
25
|
+ pivot = lista[high]
|
|
26
|
+ i = low - 1
|
|
27
|
+ for j in range(low, high):
|
|
28
|
+ if lista[j] <= pivot:
|
|
29
|
+ i = i + 1
|
|
30
|
+ (lista[i], lista[j]) = (lista[j], lista[i])
|
|
31
|
+ (lista[i + 1], lista[high]) = (lista[high], lista[i + 1])
|
|
32
|
+
|
|
33
|
+ return i + 1
|
|
34
|
+
|
|
35
|
+"""
|
|
36
|
+Esta implementación de quicksort fue extraida de geeksforgeeks.org Oct 4, 2022
|
|
37
|
+https://www.geeksforgeeks.org/quick-sort/
|
|
38
|
+"""
|
|
39
|
+def quickSort(lista, low, high):
|
21
|
40
|
#definan el algoritmo de ordenamiento quicksort
|
|
41
|
+ if low < high:
|
|
42
|
+ pi = partition(lista, low, high)
|
|
43
|
+ quickSort(lista, low, pi - 1)
|
|
44
|
+ quickSort(lista, pi + 1, high)
|
22
|
45
|
return lista
|
23
|
46
|
|
24
|
47
|
def shellSort(lista):
|
|
@@ -40,27 +63,27 @@ for i in range(veces):
|
40
|
63
|
quicklista=list(mergelista)
|
41
|
64
|
searchlista=list(mergelista)
|
42
|
65
|
|
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
|
|
66
|
+ # t1 = time.time() #seteamos el tiempo al empezar
|
|
67
|
+ # mergeSort(mergelista) #ejecutamos el algoritmo mergeSort
|
|
68
|
+ # acumulaMerge+=time.clock()-t1 #acumulamos el tiempo de ejecucion
|
46
|
69
|
|
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
|
|
70
|
+ # t1 = time.time() #seteamos el tiempo al empezar
|
|
71
|
+ # heapSort(heaplista) #ejecutamos el algoritmo heapSort
|
|
72
|
+ # acumulaHeap+=time.clock()-t1 #acumulamos el tiempo de ejecucion
|
50
|
73
|
|
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
|
|
74
|
+ t1 = time.time() #seteamos el tiempo al empezar
|
|
75
|
+ quickSort(quicklista, 0, len(quicklista) - 1) #ejecutamos el algoritmo quickSort
|
|
76
|
+ acumulaQuick+=time.time()-t1 #acumulamos el tiempo de ejecucion
|
54
|
77
|
|
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
|
|
78
|
+ # t1 = time.time() #seteamos el tiempo al empezar
|
|
79
|
+ # shellSort(searchlista) #ejecutamos el algoritmo shellSort
|
|
80
|
+ # acumulaShell+=time.clock()-t1 #acumulamos el tiempo de ejecucion
|
58
|
81
|
|
59
|
82
|
#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"
|
|
83
|
+print("Promedio de tiempo de ejecucion de "+ str(veces) +" listas de largo " + str(largoLista))
|
|
84
|
+# print("MergeSort " + str(acumulaMerge/veces) + " segundos")
|
|
85
|
+# print("HeapSort " + str(acumulaHeap/veces) + " segundos")
|
|
86
|
+print("QuickSort " + str(acumulaQuick/veces) + " segundos")
|
|
87
|
+# print("ShellSort " + str(acumulaShell/veces) + " segundos")
|
65
|
88
|
|
66
|
89
|
|