|
|
|
|
24
|
def shellSort(lista):
|
24
|
def shellSort(lista):
|
25
|
#definan el algoritmo de ordenamiento shellsort
|
25
|
#definan el algoritmo de ordenamiento shellsort
|
26
|
#Luis E. Ortiz Cotto
|
26
|
#Luis E. Ortiz Cotto
|
27
|
- #Este codigo tiene su base de GeeksforGeeks
|
|
|
28
|
- distance = len(lista) / 2 #Coge la distancia de la mitad de la lista
|
|
|
|
|
27
|
+ #Este codigo tiene su base de GeeksforGeeks https://www.geeksforgeeks.org/python-program-for-shellsort/
|
|
|
28
|
+ distance = len(lista) / 2 #Coge la distancia que va a haber entre los valores dentro de la lista para ordenar
|
29
|
|
29
|
|
30
|
while distance > 0:
|
30
|
while distance > 0:
|
31
|
for i in range(distance, len(lista)): #Empieza a ordenar haciendo un insertion sort para la distancia
|
31
|
for i in range(distance, len(lista)): #Empieza a ordenar haciendo un insertion sort para la distancia
|
|
|
|
|
37
|
lista[j] = lista[j - distance]
|
37
|
lista[j] = lista[j - distance]
|
38
|
j -= distance
|
38
|
j -= distance
|
39
|
|
39
|
|
40
|
- #Poner el valor temporero en el su posicion correcta
|
|
|
|
|
40
|
+ #Pone el valor temporero en su posicion correcta
|
41
|
lista[j] = tmp
|
41
|
lista[j] = tmp
|
42
|
- distance /= 2 #Coge la mitad otra vez de la que ya esta
|
|
|
|
|
42
|
+ distance /= 2 #Coge otra distancia mas entre los valores para ordenarlos otra vez
|
43
|
|
43
|
|
44
|
return lista
|
44
|
return lista
|
45
|
|
45
|
|