Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Ordenes, Apuntes de Ingeniería Infórmatica

Asignatura: Análisis de Algoritmos y Estructuras de Datos, Profesor: Mayte Gracía, Carrera: Ingeniería Informática, Universidad: UCA

Tipo: Apuntes

2013/2014

Subido el 01/09/2014

pegaitopsepse
pegaitopsepse 🇪🇸

4.8

(5)

6 documentos

1 / 21

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Introducción Orden
O
Orden
Orden
Θ
Operaciones asintóticas
Análisis de Algoritmos y Estructuras de Datos
Tema 1: Órdenes asintóticos
M
ª
Teresa García Horcajadas José Fidel Argudo Argudo
Antonio García Domínguez Francisco Palomo Lozano
Versión 1.0
Análisis de Algoritmos y Estructuras de Datos Órdenes asintóticos
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15

Vista previa parcial del texto

¡Descarga Ordenes y más Apuntes en PDF de Ingeniería Infórmatica solo en Docsity!

Análisis de Algoritmos y Estructuras de Datos

Tema 1: Órdenes asintóticos

Mª Teresa García Horcajadas José Fidel Argudo Argudo Antonio García Domínguez Francisco Palomo Lozano

Versión 1.

Índice

(^1) Introducción

(^2) Orden asintótico O

(^3) Orden asintótico Ω

(^4) Orden asintótico Θ

5 Operaciones asintóticas

Denición de O

Denición Dada una función f : N → R+ 0 , su orden O es el conjunto de las funciones acotadas superiormente, a partir de un cierto umbral, por múltiplos reales y positivos de f.

O(f ) = {t : N → R+ 0 | ∃c ∈ R+^ ∃n 0 ∈ N ∀n > n 0 t(n) 6 cf (n)}

Así, t ∈ O(f ) si, y solo si, ∃c ∈ R+^ ∃n 0 ∈ N ∀n > n 0 t(n) 6 cf (n)

Nota Esta denición es asintótica, ya que solo importa lo que ocurre para valores de n sucientemente grandes. Por lo tanto, se puede relajar cuando n < n 0 y permitir que f tome el valor 0, valores negativos o que incluso no esté denida.

Pertenencia de n + 20 a O(n) con distintos c y n 0

c = 2 n 0 = 20

c = 3 n 0 = 10 c = 5 n 0 = 5

n + 20 n 2 n 3 n 5 n

Propiedades de O (I)

Ordenación de funciones por órdenes O induce un preorden (^6) O (una relación binaria reexiva y transitiva) sobre N → R+ 0 , denido por:

f (^6) O g ⇐⇒ O(f ) ⊆ O(g )

Este preorden no es total (existen elementos incomparables).

Pertenencia y contención

f ∈ O(g ) ⇐⇒ O(f ) ⊆ O(g ) f ∈ O(g ) ∧ g ∈ O(f ) ⇐⇒ O(f ) = O(g ) f ∈ O(g ) ∧ g ∈/ O(f ) ⇐⇒ O(f ) ⊂ O(g )

Propiedades de O (II)

Simplicación

O(cf ) = O(f ) (c ∈ R+) O(f + g ) = O(max{f , g })

O

( (^) k ∑

i= 0

ci ni

= O(nk^ ) (ck ∈ R+)

Comparación mediante límites (si existen)

lm f (n) g (n)

= 0 =⇒ O(f ) ⊂ O(g )

lm f (n) g (n) ∈ R+^ =⇒ O(f ) = O(g )

lm

f (n) g (n) = ∞ =⇒ O(g ) ⊂ O(f )

Jerarquía de complejidad: n <O n log n <O n^2 <O n^3

n n log n n^2 / 10 n^3 / 100

Jerarquía de complejidad: n^3 <O 2 n^ <O 3 n

n^3 2 n/ 10 3 n/ 100

Jerarquía de complejidad

¾Qué ocurre si se multiplica el tiempo disponible?

Nombre O(f (n)) t = 1 s t = 2 s t = 10 s logarítmico log n n = 100 n = 10000 n = 1020 lineal n n = 100 n = 200 n = 1000 lineal logarítmico n log n n = 100 n = 178 n = 702 o cuasi-lineal cuadrático n^2 n = 100 n = 141 n = 316 cúbico n^3 n = 100 n = 126 n = 215 potencial nk^ n = 100 n = 100 · 21 /k^ n = 100 · 101 /k exponencial 2 n^ n = 100 n = 101 n = 103

Jerarquía de complejidad

¾Qué ocurre si se dobla el tamaño de la entrada?

Nombre O(f (n)) n = 100 n = 200 logarítmico log n 1 s 1,15 s lineal n 1 s 2 s lineal logarítmico o cuasi-lineal n^ log^ n^ 1 s^ 2,30 s cuadrático n^2 1 s 4 s cúbico n^3 1 s 8 s potencial nk^ 1 s 2 k^ s exponencial 2 n^ 1 s 1 , 27 × 1030 s > 4 × 1020 siglos

Propiedades de Ω

Dualidad

f ∈ O(g ) ⇐⇒ g ∈ Ω(f ) Permite traspasar las propiedades de O a Ω y viceversa.

Relación entre O y Ω

O(f ) = O(g ) ⇐⇒ Ω(f ) = Ω(g )

Denición de Θ

Denición Dada una función f : N → R+ 0 , su orden Θ es el conjunto de funciones acotadas (superior e inferiormente), a partir de un cierto umbral, por múltiplos reales y positivos de f.

Θ(f ) = {t : N → R+ 0 | ∃c 1 , c 2 ∈ R+^ ∃n 0 ∈ N ∀n > n 0 c 1 f (n) 6 t(n) 6 c 2 f (n)}

Así, t ∈ Θ(f ) si, y solo si, t ∈ Ω(f ) y t ∈ O(f )

Equivalencia entre órdenes de funciones Θ induce una equivalencia ≡Θ (una relación binaria reexiva, simétrica y transitiva) sobre N → R+ 0 , denida por:

f ≡Θ g ⇐⇒ Θ(f ) = Θ(g )

Relación entre O, Ω y Θ

Propiedades

Θ(f ) = O(f ) ∩ Ω(f ) O(f ) = O(g ) ⇐⇒ Θ(f ) = Θ(g ) Ω(f ) = Ω(g ) ⇐⇒ Θ(f ) = Θ(g )

Las propiedades de O y Ω se traducen de manera sencilla a Θ.

Ejemplos

Θ(cf ) = Θ(f ) Θ(f + g ) = Θ(max{f , g })

lm

f (n) g (n) ∈ R+^ =⇒ Θ(f ) = Θ(g )

Simplemente por aplicación directa de la relación entre O y Θ.

Operaciones asintóticas

Denición Dados Ξ ∈ {O, Ω, Θ}, f , g : N → R+ 0 y un operador binario ◦, se dene Ξ(f ) ◦ Ξ(g ) como el conjunto de las funciones que se obtienen aplicando ◦ a cada función de Ξ(f ) y de Ξ(g ).

Ξ(f ) ◦ Ξ(g ) = {t : N → R+ 0 | ∃u ∈ Ξ(f ) ∃v ∈ Ξ(g ) ∃n 0 ∈ N ∀n > n 0 t(n) = u(n) ◦ v (n)}

Suma y producto de órdenes

O(f ) + O(g ) = O(f + g ) O(f ) · O(g ) = O(f · g ) Ω(f ) + Ω(g ) = Ω(f + g ) Ω(f ) · Ω(g ) = Ω(f · g ) Θ(f ) + Θ(g ) = Θ(f + g ) Θ(f ) · Θ(g ) = Θ(f · g )