Selaa lähdekoodia

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

ricardo 2 vuotta sitten
vanhempi
commit
56fa185371
1 muutettua tiedostoa jossa 34 lisäystä ja 2 poistoa
  1. 34
    2
      sorting.py

+ 34
- 2
sorting.py Näytä tiedosto

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