Técnica de Diseño de Algoritmos

Page 120

110

TÉCNICAS DE DISEÑO DE ALGORITMOS

ecuación no homogénea con ecuación característica (x–1)2 = 0. Por tanto, tk = c1k + c2 y, deshaciendo el cambio: T(n) = c1log3/2n + c2. Para calcular las constantes, nos basaremos en la condición inicial T(1) = 4, junto con el valor de T(2), que puede ser calculado apoyándonos en la expresión de la ecuación en recurrencia, es decir, T(2) = 11 + 4 = 15. De esta forma obtenemos que: T(n) = 11log3/2n + 4 ∈Θ(logn). A pesar de ser del mismo orden de complejidad que la búsqueda binaria clásica, como 3/2 < 2 se tiene que log3/2n > logn, es decir, este algoritmo es más lento en el caso peor que el algoritmo original presentado en el problema 1.16 del primer capítulo. Este hecho puede ser generalizado fácilmente para demostrar que, dividiendo el vector en dos partes de tamaños k y n–k, el tiempo de ejecución del algoritmo resultante en el peor caso es: Tk(n) = 11logn/max{k,n–k}n + 4 ∈Θ(logn). Ahora bien, para 1 ≤ k < n sabemos que la función n/max{k,n–k} se mantiene por debajo de 2, y sólo alcanza este valor para k = n/2, por lo que logn/max{k,n–k}n ≥ logn para todo k entre 1 y n. Esto nos indica que la mejor forma de partir el vector para realizar la búsqueda binaria es por la mitad, es decir, tratando de equilibrar los subproblemas en los que realizamos la división tal como comentábamos en la introducción de este capítulo.

3.4 BÚSQUEDA TERNARIA Podemos plantearnos también diseñar un algoritmo de búsqueda “ternaria”, que primero compara con el elemento en posición n/3 del vector, si éste es menor que el elemento x a buscar entonces compara con el elemento en posición 2n/3, y si no coincide con x busca recursivamente en el correspondiente subvector de tamaño 1/3 del original. ¿Conseguimos así un algoritmo mejor que el de búsqueda binaria? Solución

(☺)

Podemos implementar el algoritmo pedido, también de simplificación, de una forma similar a la anterior. La única diferencia es la interpretación de la variable nterc, que no indica una posición dentro del vector (como le ocurría a la variable tercio del ejercicio previo), sino el número de elementos a tratar (n/3). Es por eso por lo que se lo sumamos y restamos a los valores de prim y ult para obtener las posiciones adecuadas. El algoritmo resultante es:


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.