Logo Studenta

Estructuras de Datos I - Ordenamientos Recursivos Mezcla

¡Este material tiene más páginas!

Vista previa del material en texto

Estructuras de Datos I
Ordenamientos Recursivos
Mezcla [Merge Sort]
Recursivo
Basado en INTERCALACION
1
3
43
23
2
69
2
93
Mezcla [Merge Sort]
Intercalación
1
3
43
23
2
69
2
93
1
Mezcla [Merge Sort]
Intercalación
1
3
43
23
2
69
2
93
1
2
Mezcla [Merge Sort]
Intercalación
1
3
43
23
2
69
2
93
1
2
2
Mezcla [Merge Sort]
Intercalación
1
3
43
23
2
69
2
93
1
2
3
2
Mezcla [Merge Sort]
Intercalación
1
3
43
23
2
69
2
93
1
2
3
2
23
Mezcla [Merge Sort]
Intercalación
1
3
43
23
2
69
2
93
1
2
3
2
23
43
Mezcla [Merge Sort]
Intercalación
1
3
43
23
2
69
2
93
1
2
3
2
23
69
43
Mezcla [Merge Sort]
Intercalación
1
3
43
23
2
69
2
93
1
2
3
2
23
69
43
93
Mezcla [Merge Sort]
Intercalación
1
3
43
23
2
69
2
93
1
2
3
2
23
69
43
93
Mezcla [Merge Sort]
Intercalación
1
3
43
23
2
69
2
93
Mezcla [Merge Sort]
Intercalación
i
J
ei
m
ed
m + 1
x
1
3
43
23
2
69
2
93
1
Mezcla [Merge Sort]
Intercalación
i
J
ei
m
ed
m + 1
x
1
3
43
23
2
69
2
93
1
2
Mezcla [Merge Sort]
Intercalación
i
J
ei
m
ed
m + 1
x
1
3
43
23
2
69
2
93
1
2
2
Mezcla [Merge Sort]
Intercalación
i
J
ei
m
ed
m + 1
x
1
3
43
23
2
69
2
93
1
2
3
2
Mezcla [Merge Sort]
Intercalación
i
J
ei
m
ed
m + 1
x
1
3
43
23
2
69
2
93
1
2
3
2
23
Mezcla [Merge Sort]
Intercalación
i
J
ei
m
ed
m + 1
x
1
3
43
23
2
69
2
93
1
2
3
2
23
43
Mezcla [Merge Sort]
Intercalación
i
J
ei
m
ed
m + 1
x
1
3
43
23
2
69
2
93
1
2
3
2
23
69
43
Mezcla [Merge Sort]
Intercalación
i
J
ei
m
ed
m + 1
x
1
3
43
23
2
69
2
93
1
2
3
2
23
69
43
93
Mezcla [Merge Sort]
Intercalación
i
J
ei
m
ed
m + 1
x
1
3
43
23
2
69
2
93
1
2
3
2
23
69
43
93
Mezcla [Merge Sort]
Intercalación
i
J
ei
m
ed
m + 1
x
1
3
43
23
2
69
2
93
1
2
3
2
23
69
43
93
Mezcla [Merge Sort]
Intercalación
i
J
ei
m
ed
m + 1
x
i = extIzq, J = medio + 1, x = extDer
Mientras i <= medio AND J <= extDer
	mientras i <= medio AND temp[i] <= temp[J]
		data[x] = temp[i]
		i = i +1, x = x + 1
	fin mientras
	
	¿i <= medio?
		Si: mientras J <= extDer y temp[J] <= temp[i]
			data[x] = temp[J]
			J = J + 1, x = x + 1
			fin mientras
Fin mientras
Mientras i <= medio
	data[x] = temp[i]
	i = i +1, x = x +1
Fin mientras
Mientras J <= extDer
	data[x] = temp[j]
	J = J + 1, x = x +1
Fin mientras
3
2
43
169
1
87
13
32
3
2
43
169
3
2
43
169
1
87
13
32
3
2
43
169
1
87
13
32
3
2
43
169
1
87
13
32
3
2
43
169
1
87
13
32
?
3
2
43
169
1
87
13
32
3
2
43
169
1
87
13
32
3
2
43
169
1
87
13
32
3
2
43
169
1
87
13
32
3
2
43
169
3
2
43
169
1
87
13
32
3
2
43
169
1
87
13
32
3
2
43
169
3
2
3
2
43
169
1
87
13
32
3
2
43
169
1
87
13
32
3
2
43
169
3
2
3
2
3
2
43
169
1
87
13
32
3
2
43
169
1
87
13
32
3
2
43
169
3
2
3
2
169
43
3
2
43
169
1
87
13
32
3
2
43
169
1
87
13
32
3
2
43
169
3
2
3
2
169
43
43
169
3
2
43
169
1
87
13
32
3
2
43
169
1
87
13
32
3
2
43
169
3
2
3
2
169
43
43
169
2
3
43
169
3
2
43
169
1
87
13
32
3
2
43
169
1
87
13
32
3
2
43
169
3
2
3
2
169
43
43
169
2
3
43
169
1
13
87
32
3
2
43
169
1
87
13
32
3
2
43
169
1
87
13
32
3
2
43
169
3
2
3
2
169
43
43
169
2
3
43
169
1
13
87
32
1
13
3
2
43
169
1
87
13
32
3
2
43
169
1
87
13
32
3
2
43
169
3
2
3
2
169
43
43
169
2
3
43
169
1
13
87
32
1
13
1
13
3
2
43
169
1
87
13
32
3
2
43
169
1
87
13
32
3
2
43
169
3
2
3
2
169
43
43
169
2
3
43
169
1
13
87
32
1
13
1
13
87
32
3
2
43
169
1
87
13
32
3
2
43
169
1
87
13
32
3
2
43
169
3
2
3
2
169
43
43
169
2
3
43
169
1
13
87
32
1
13
1
13
87
32
32
87
3
2
43
169
1
87
13
32
3
2
43
169
1
87
13
32
3
2
43
169
3
2
3
2
169
43
43
169
2
3
43
169
1
13
87
32
1
13
1
13
87
32
32
87
1
13
32
87
3
2
43
169
1
87
13
32
3
2
43
169
1
87
13
32
3
2
43
169
3
2
3
2
169
43
43
169
2
3
43
169
1
13
87
32
1
13
1
13
87
32
32
87
1
13
32
87
1
2
3
13
32
43
87
169
“Divide y vencerás”
MergeSort
Recursivo
Estilo: “Divide y vencerás”
Función: mezcla()
Recibe: data[ ], extIzq, extder
Regresa: nada
	¿extIzq >= extDer?
		Si: terminar
	medio = (extIzq + extDer) / 2
	
	llamar: mezcla(data, extIzq, medio)
	llamar: mezcla(data, medio + 1, extDer)
Criterio de paro
“Divide y vencerás”
Temp[extIzq … extIzq] = data[extIzq … extDer]
i = extIzq, J = medio + 1, x = extDer
Mientras i <= medio AND J <= extDer
	mientras i <= medio AND temp[i] <= temp[J]
		data[x] = temp[i]
		i = i +1, x = x + 1
	fin mientras
	
	¿i <= medio?
		Si: mientras J <= extDer y temp[J] <= temp[i]
			data[x] = temp[J]
			J = J + 1, x = x + 1
			fin mientras
Fin mientras
Intercalación
Mientras i <= medio
	data[x] = temp[i]
	i = i +1, x = x +1
Fin mientras
Mientras J <= extDer
	data[x] = temp[j]
	J = J + 1, x = x +1
Fin mientras
A
A

Continuar navegando