|
@@ -23,20 +23,22 @@ def quickSort(lista):
|
23
|
23
|
|
24
|
24
|
def shellSort(lista):
|
25
|
25
|
#definan el algoritmo de ordenamiento shellsort
|
26
|
|
- x = len(lista)
|
27
|
|
- distance = x / 2
|
|
26
|
+ #Este codigo tiene su base de GeeksforGeeks
|
|
27
|
+ distance = len(lista) / 2 #Coge la distancia de la mitad de la lista
|
28
|
28
|
|
29
|
29
|
while distance > 0:
|
30
|
|
- for i in range(distance, x):
|
31
|
|
- tmp = lista[i]
|
32
|
|
- j = i
|
|
30
|
+ for i in range(distance, len(lista)): #Empieza a ordenar haciendo un insertion sort para la distancia
|
|
31
|
+ tmp = lista[i] #Guarda temporeramente el valor que esta en la posicion i que se va a cambiar
|
|
32
|
+ j = i #Tiene el valor que va al momento
|
33
|
33
|
|
|
34
|
+ #Empieza a ordernar los elementos hasta que llegue a la localizacion donde esta el valor temporero
|
34
|
35
|
while j >= distance and lista[j - distance] > tmp:
|
35
|
36
|
lista[j] = lista[j - distance]
|
36
|
37
|
j -= distance
|
37
|
38
|
|
|
39
|
+ #Poner el valor temporero en el su posicion correcta
|
38
|
40
|
lista[j] = tmp
|
39
|
|
- distance /= 2
|
|
41
|
+ distance /= 2 #Coge la mitad otra vez de la que ya esta
|
40
|
42
|
|
41
|
43
|
return lista
|
42
|
44
|
|