Técnica de Diseño de Algoritmos

Page 127

117

DIVIDE Y VENCERÁS

p

V·W =

∑ (v i =1

2i−1

p

p

i =1

i= 1

+ w2i )(v 2i + w2i −1 ) − ∑ v 2i−1 v 2i − ∑ w2i −1 w2i

podemos observar que pueden reutilizarse muchos cálculos, puesto que los dos últimos sumandos de esta ecuación sólo dependen de los vectores V y W. Entonces el método pedido puede implementarse como sigue: • Primero se calculan las sumas p

∑v i =1

v

2i −1 2i

para cada uno de los vectores fila de B y columna de C. Hay que realizar 2n de estas operaciones, y cada una requiere n/2 multiplicaciones, lo que implica n2 multiplicaciones de elementos en esta fase. • Después se calcula cada uno de los elementos de A como A[i,j] = Bi·Cj utilizando la fórmula anterior, pero en donde ya hemos calculado (en el paso previo) los dos últimos términos de los tres que componen la expresión. Por tanto, para cada elemento de A sólo es necesario realizar ahora n/2 multiplicaciones de elementos. Como hay que calcular n2 elementos en total, realizaremos en esta fase n3/2 multiplicaciones. Sumando el número de multiplicaciones de ambas fases, hemos conseguido un método con el número de operaciones pedido. 3.8 MEDIANA DE DOS VECTORES Sean X e Y dos vectores de tamaño n, ordenados de forma no decreciente. Necesitamos implementar un algoritmo para calcular la mediana de los 2n elementos que contienen X e Y. Recordemos que la mediana de un vector de k elementos es aquel elemento que ocupa la posición (k+1)÷2 una vez el vector está ordenado de forma creciente. Dicho de otra forma, la mediada es aquel elemento que, una vez ordenado el vector, deja la mitad de los elementos a cada uno de sus lados. Como en nuestro caso k = 2n (y por tanto par) buscamos el elemento en posición n de la unión ordenada de X e Y. Solución

( )

Para resolver el problema utilizaremos una idea basada en el método de búsqueda binaria. Comenzaremos estudiando el caso base, que ocurre cuando tenemos dos vectores de un elemento cada uno (n = 1). En este caso la mediana será el mínimo de ambos números, pues obedeciendo a la definición sería el elemento que ocupa la primera posición (n = 1) si ordenásemos ambos vectores. Respecto al caso general, existe una forma de dividir el problema en subproblemas más pequeños. Sea Z el vector resultante de mezclar ordenadamente los vectores X e Y, y sea mZ la mediana de Z. Apoyándonos en el hecho de que X e Y se encuentran ordenados, es fácil calcular sus medianas (son los elementos que ocupan las posiciones centrales de ambos vectores), y que llamaremos mX y mY.


Turn static files into dynamic content formats.

Create a flipbook

Articles inside

BIBLIOGRAFÍA Y REFERENCIAS

14min
pages 315-326

7.11 El fontanero con penalizaciones

10min
pages 307-314

7.10 Las n reinas

5min
pages 303-306

7.9 La asignación de tareas

7min
pages 298-302

7.6 La colocación óptima de rectángulos

6min
pages 285-290

7.8 La mochila (0,1) con múltiples elementos

2min
pages 296-297

7.5 El laberinto

10min
pages 278-284

7.4 El viajante de comercio

11min
pages 270-277

7.2 Consideraciones de implementación.......................................................257 7.3 El puzzle (n 2–1

12min
pages 262-269

6.15 Reconocimiento de grafos

2min
pages 249-250

6.14 El coloreado de mapas

3min
pages 246-248

6.16 Subconjuntos de igual suma

2min
pages 251-252

6.17 La múltiples mochilas (0,1

3min
pages 253-254

3.14 Divide y Vencerás multidimensional

7min
pages 132-136

3.13 El torneo de tenis

9min
pages 127-131

3.12 La moda de un vector

6min
pages 124-126

3.11 El elemento mayoritario

5min
pages 121-123

3.4 Búsqueda ternaria

2min
pages 110-111

1.4 Resolución de ecuaciones en recurrencia

7min
pages 10-15

3.10 Repetición de cálculos en Fibonacci

2min
page 120

3.8 Mediana de dos vectores

5min
pages 117-118

3.9 El elemento en su posición

1min
page 119

3.7 Producto de matrices cuadradas (2

1min
page 116

3.6 Producto de matrices cuadradas (1

2min
pages 114-115

3.5 Multiplicación de enteros

3min
pages 112-113

2.6 Ordenación mediante Montículos (Heapsort

4min
pages 65-66

2.5 Ordenación por Mezcla (Mergesort

4min
pages 63-64

3.3 Búsqueda binaria no centrada

1min
page 109

2.8 Ordenación por Incrementos (Shellsort

1min
page 70

3.2 Búsqueda binaria

2min
page 108

2.3 Ordenación por Selección

1min
page 61

2.2 Ordenación por Inserción

2min
page 60
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.