|
|
|
|
133
|
def shellSort(lista):
|
133
|
def shellSort(lista):
|
134
|
#definan el algoritmo de ordenamiento shellsort
|
134
|
#definan el algoritmo de ordenamiento shellsort
|
135
|
#Luis E. Ortiz Cotto
|
135
|
#Luis E. Ortiz Cotto
|
136
|
- #Este codigo tiene su base de GeeksforGeeks
|
|
|
137
|
- distance = len(lista) / 2 #Coge la distancia de la mitad de la lista
|
|
|
|
|
136
|
+ #Este codigo tiene su base de GeeksforGeeks https://www.geeksforgeeks.org/python-program-for-shellsort/
|
|
|
137
|
+ distance = len(lista) / 2 #Coge la distancia que va a haber entre los valores dentro de la lista para ordenar
|
138
|
|
138
|
|
139
|
while distance > 0:
|
139
|
while distance > 0:
|
140
|
for i in range(distance, len(lista)): #Empieza a ordenar haciendo un insertion sort para la distancia
|
140
|
for i in range(distance, len(lista)): #Empieza a ordenar haciendo un insertion sort para la distancia
|
|
|
|
|
146
|
lista[j] = lista[j - distance]
|
146
|
lista[j] = lista[j - distance]
|
147
|
j -= distance
|
147
|
j -= distance
|
148
|
|
148
|
|
149
|
- #Poner el valor temporero en el su posicion correcta
|
|
|
|
|
149
|
+ #Pone el valor temporero en su posicion correcta
|
150
|
lista[j] = tmp
|
150
|
lista[j] = tmp
|
151
|
- distance /= 2 #Coge la mitad otra vez de la que ya esta
|
|
|
|
|
151
|
+ distance /= 2 #Coge otra distancia mas entre los valores para ordenarlos otra vez
|
152
|
|
152
|
|
153
|
return lista
|
153
|
return lista
|
154
|
|
154
|
|