Luis Ortiz 2 роки тому
джерело
коміт
69257863a8
1 змінених файлів з 8 додано та 6 видалено
  1. 8
    6
      sorting.py

+ 8
- 6
sorting.py Переглянути файл

@@ -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