Browse Source

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

ricardo 2 years ago
parent
commit
56fa185371
1 changed files with 34 additions and 2 deletions
  1. 34
    2
      sorting.py

+ 34
- 2
sorting.py View File

@@ -14,8 +14,40 @@ def isSorted(lista):
14 14
     return lista == sorted(lista)
15 15
 
16 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 52
 """La siguiente implementación del algoritmo 'Heapsort'
21 53
 fue implementada por Miguel E. Cruz Molina, siguiendo