Browse Source

Añado mergesort

Zander Cuz 3 years ago
parent
commit
fa3f69ba06
1 changed files with 27 additions and 0 deletions
  1. 27
    0
      sorting.py

+ 27
- 0
sorting.py View File

@@ -1,3 +1,4 @@
1
+# coding=utf-8
1 2
 """
2 3
 Carlos J Corrada Bravo
3 4
 Este programa calcula el promedio de tiempo de ejecución de cuatro algoritmos de ordenamiento
@@ -19,6 +20,32 @@ def swap(lista, posicion1, posicion2):
19 20
 
20 21
 def mergeSort(lista):
21 22
 	#definan el algoritmo de ordenamiento mergesort
23
+	if len(lista) > 1:
24
+		mid = len(lista)//2
25
+		left = lista[:mid]
26
+		right = lista[mid:]
27
+		mergeSort(left)
28
+		mergeSort(right)
29
+		
30
+		i = j = k = 0
31
+		
32
+		while i < len(left) and j < len(right):
33
+			if left[i] < right[j]:
34
+				lista[k] = left[i]
35
+				i += 1
36
+			else:
37
+				lista[k] = right[j]
38
+				j += 1
39
+			k += 1
40
+		while i < len(left):
41
+			lista[k] = left[i]
42
+			i += 1
43
+			k += 1
44
+		while j < len(right):
45
+			lista[k] = right[j]
46
+			j += 1
47
+			k += 1
48
+
22 49
 	return lista
23 50
 
24 51