|
@@ -6,7 +6,6 @@ La variable largoLista define el largo de las listas a ordenar
|
6
|
6
|
La variable veces define las veces que se va a hacer el ordenamiento
|
7
|
7
|
Al final se imprimen los promedios de cada algortimo
|
8
|
8
|
"""
|
9
|
|
-
|
10
|
9
|
from random import randint
|
11
|
10
|
import time
|
12
|
11
|
|
|
@@ -81,11 +80,25 @@ def heapSort(lista):
|
81
|
80
|
return lista
|
82
|
81
|
|
83
|
82
|
def quickSort(lista):
|
84
|
|
- #definan el algoritmo de ordenamiento quicksort
|
|
83
|
+ # definan el algoritmo de ordenamiento quicksort
|
85
|
84
|
return lista
|
86
|
85
|
|
87
|
86
|
def shellSort(lista):
|
88
|
|
- #definan el algoritmo de ordenamiento shellsort
|
|
87
|
+ # definan el algoritmo de ordenamiento shellsort
|
|
88
|
+ div = len(lista) / 2
|
|
89
|
+ # verifica si no se puede dividir mas
|
|
90
|
+ while div != 0:
|
|
91
|
+ # dividir lista en sub listas
|
|
92
|
+ for j in range(div):
|
|
93
|
+ # hacer insertion sort en sub listas
|
|
94
|
+ for x in range(div + j, len(lista), div):
|
|
95
|
+ key = lista[x]
|
|
96
|
+ pos = x - div
|
|
97
|
+ while pos >= 0 and key < lista[pos]:
|
|
98
|
+ lista[pos + div] = lista[pos]
|
|
99
|
+ pos -= div
|
|
100
|
+ lista[pos + div] = key
|
|
101
|
+ div /= 2
|
89
|
102
|
return lista
|
90
|
103
|
|
91
|
104
|
def heapify(lista, largo, raiz):
|
|
@@ -123,10 +136,10 @@ acumulaQuick=0 #variable para acumular el tiempo de ejecucion del quicksort
|
123
|
136
|
acumulaShell=0 #variable para acumular el tiempo de ejecucion del shellsort
|
124
|
137
|
|
125
|
138
|
for i in range(veces):
|
126
|
|
- mergelista = [randint(0,maxValor) for r in range(largoLista)] #creamos una lista con valores al azar
|
127
|
|
- heaplista=list(mergelista)
|
128
|
|
- quicklista=list(mergelista)
|
129
|
|
- searchlista=list(mergelista)
|
|
139
|
+ mergelista = [randint(0,maxValor) for r in range(largoLista)] # creamos una lista con valores al azar
|
|
140
|
+ heaplista = list(mergelista)
|
|
141
|
+ quicklista = list(mergelista)
|
|
142
|
+ searchlista = list(mergelista)
|
130
|
143
|
|
131
|
144
|
t1 = time.process_time() #seteamos el tiempo al empezar
|
132
|
145
|
mergeSort(mergelista) #ejecutamos el algoritmo mergeSort
|