Parcourir la source

Merge remote-tracking branch 'origin/sortingNathalia' into origin/sortingFinal

ricardo il y a 3 ans
Parent
révision
56fa185371
1 fichiers modifiés avec 34 ajouts et 2 suppressions
  1. 34
    2
      sorting.py

+ 34
- 2
sorting.py Voir le fichier

14
     return lista == sorted(lista)
14
     return lista == sorted(lista)
15
 
15
 
16
 def mergeSort(lista):
16
 def mergeSort(lista):
17
-	#definan el algoritmo de ordenamiento mergesort
18
-	return lista
17
+  if len(lista)>1:
18
+    mitad = len(lista)//2
19
+    izq = lista[:mitad]
20
+    der = lista[mitad:]
21
+
22
+    mergeSort(izq)
23
+    mergeSort(der)
24
+
25
+    idx_izq = 0
26
+    idx_der = 0
27
+
28
+    idx_lista = 0
29
+
30
+    while idx_izq < len(izq) and idx_der < len(der):
31
+      if izq[idx_izq] <= der[idx_der]:
32
+        lista[idx_lista] = izq[idx_izq]
33
+        idx_izq += 1
34
+
35
+      else:
36
+        lista[idx_lista] = der[idx_der]
37
+        idx_der += 1
38
+
39
+      idx_lista += 1
40
+
41
+    while idx_izq < len(izq):
42
+      lista[idx_lista] = izq[idx_izq]
43
+      idx_izq +=1
44
+      idx_lista +=1
45
+
46
+    while idx_der < len(der):
47
+      lista[idx_lista] = der[idx_der]
48
+      idx_der += 1
49
+      idx_lista += 1
50
+  return lista
19
 
51
 
20
 """La siguiente implementación del algoritmo 'Heapsort'
52
 """La siguiente implementación del algoritmo 'Heapsort'
21
 fue implementada por Miguel E. Cruz Molina, siguiendo
53
 fue implementada por Miguel E. Cruz Molina, siguiendo