Algoritmos: Análisis de Algoritmos

Documentos relacionados
Algoritmos: Algoritmos sobre secuencias y conjuntos de datos

NOTACIÓN O GRANDE. El análisis de algoritmos estima el consumo de recursos de un algoritmo.

Programación de Sistemas

Complejidad de Algoritmos

Agradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1

UNIDAD 1: NÚMEROS NATURALES OBJETIVOS

Notación Asintótica 2

UNIDAD 1: NÚMEROS RACIONALES OBJETIVOS

Sistemas de Ecuaciones. Lineales I

La eficiencia de los programas

13. Utilizar la fórmula del término general y de la suma de n términos consecutivos

Algoritmos sobre secuencias y conjuntos de datos

Algoritmos. Diseño de algoritmos por inducción. Alberto Valderruten. Dept. de Computación, Universidade da Coruña

CONTENIDOS Y CRITERIOS DE EVALUACIÓN MATEMÁTICAS 5º ED. PRIMARIA

ANEXO 1. CONCEPTOS BÁSICOS. Este anexo contiene información que complementa el entendimiento de la tesis presentada.

Ingeniería del Software. Índice

Planificaciones Algoritmos y Programación I. Docente responsable: AZCURRA DIEGO ANDRES. 1 de 5

Analisis de algoritmos

DERIVACIÓN DE LAS FUNCIONES ELEMENTALES

Seminario 1: Resolución de recurrencias

PROGRAMACIÓN DE AULA MATEMÁTICAS 4º EP CENTRO EDUCATIVO LA AMISTAD. PLAN DE TRABAJO TRIMESTRAL MATEMÁTICAS 4º EP TRIMESTRE 1º REG0801 Pág.

Matemática I. Descomposición en factores. Tercera Parte. Ing. Santiago Figueroa Lorenzo Correo electrónico:

ALGORITMICA III Capitulo I ANALISIS DE ALGORITMOS

ALGEBRA y ALGEBRA LINEAL. Primer Semestre CAPITULO 6. POLINOMIOS DE UNA VARIABLE.

Para las ecuaciones diferenciales ordinarias no lineales no existen métodos generales.

Introducción al Cálculo Numérico

UNIDAD V: ARR R EGL G OS O BIDI D MENS N IONALE L S

lasmatemáticas.eu Pedro Castro Ortega materiales de matemáticas

<tipo> Tipo de dato de los elementos del vector

Resolución de Problemas y Algoritmos Clase 6: Repetición (continuación)

Estándares de evaluación en la materia de MATEMÁTICAS de 1º de ESO. Curso 2016/2017.

Ecuaciones matriciales AX = B y XA = B. Cálculo de la matriz inversa

Introducción a la Probabilidad

Acuerdo 286 Matemáticas

LENGUAJE DE PROGRAMACION UNO.

ELABORAR Y COMPARAR PROCEDIMIENTOS DE CÁLCULO MENTAL

Análisis probabilístico y Algoritmos Aleatorizados

PROGRAMACIÓN DIDÁCTICA

CONTENIDOS MÍNIMOS 1ºESO. -Realización de las cuatro operaciones (suma, resta, multiplicación y división) mediante los algoritmos tradicionales.

Diseño Estructurado de Algoritmos

Tema 1: Otros tipos de ecuaciones. En este tema trataremos otras ecuaciones distintas a las de primer y segundo grado.

Algoritmos de Ordenamiento

Capítulo 2 ORDENACIÓN

Problemas de Recursividad

Estructuras de Repetición (Hacer-Mientras)

5to. ESTANDARES MATEMATICOS COMUNES FUNDAMENTALS

Algoritmos: Diseño de algoritmos por inducción

Transformada de Laplace - Conceptos Básicos. e -st f(t)dt. L { f (t) } = F(s) =

6.1.- Introducción a las estructuras de datos Tipos de datos Arrays unidimensionales: los vectores Operaciones con vectores.

Infinito más un número Infinito más infinito. Infinito por infinito. OPERACIONES CON INFINITO Sumas con infinito. Productos con infinito

ESTRUCTURAS REPETITIVAS EN PHP

Métodos para escribir algoritmos: Diagramas de Flujo y pseudocódigo

MÓDULO III. MEDIDAS DE TENDENCIA CENTRAL, DISPERSIÓN Y ASIMETRÍA

Práctica 4 El algoritmo QuickSort, comparación de algoritmos de ordenación

Estructuras Repetitivas

DEPARTAMENTO MATEMÁTICAS. IES GALLICUM

OPTIMIZACIÓN VECTORIAL

MATEMÁTICAS APLICADAS A LAS C.C. SOCIALES

Estructuras de control

ALGEBRA I, ALGEBRA Y TRIGONOMETRIA , Segundo Semestre CAPITULO 6: POLINOMIOS.

Creación de materiales didácticos Aplicaciones para dispositivos móviles Lección 3

Sesión Práctica 2. Tasas de mortalidad.

Algoritmos. Medios de expresión de un algoritmo. Diagrama de flujo

Integrantes. Leonardo Herrera Cristian Fernandez Jorge A Mondragón. Análisis y Diseño de Algoritmos. Docente Diana Mabel Díaz Herrera.

A B MIN C D E F MAX x E.T.S.I. INFORMÁTICA 4º CURSO. INTELIGENCIA ARTIFICIAL E INGENIERÍA DEL CONOCIMIENTO

Estructura Selectiva Múltiple

MANUAL DE PRÁCTICAS DEL TALLER DE PROGRAMACIÒN PRACTICA NO.6

Ejemplo: El problema de la mochila. Algoritmos golosos. Algoritmos y Estructuras de Datos III. Segundo cuatrimestre 2013

Instituto tecnológico de Minatitlán. Investigación de operaciones Ing. Erika Lissette Minaya mortera Unidad 3: programación no lineal

PROYECTO MATEM CURSO PRECÁLCULO UNDÉCIMO AÑO MODALIDAD ANUAL. Guía para el II parcial

Cadenas de Markov. José Antonio Camarena Ibarrola

PENDIENTES DE MATEMÁTICAS DE 3º ESO (CURSO )

DEPARTAMENTO DE MATEMÁTICAS

Capítulo 3 DIVIDE Y VENCERÁS

la solución a una ecuación cuadrática solicitando al usuario los términos de dicha ecuación.

CAPÍTULO 1 INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS

EXPRESIONES ALGEBRAICAS RACIONALES

Conocer la forma de analizar las Medidas de Tendencia Central de una distribución con OpenOffice Calc.

Capítulo 1: Fundamentos: Lógica y Demostraciones Clase 3: Relaciones, Funciones, y Notación Asintótica

INSTITUTO CHAPULTEPEC MIDDLE SCHOOL

CONTENIDOS EXÁMEN DE ADMISIÓN MATEMÁTICA SEGUNDO BÁSICO 2017

ECUACIONES NO POLINÓMICAS CON UNA INCÓGNITA

Complementos de Matemáticas, ITT Telemática

Algoritmos de Búsqueda y Ordenación. Rosalía Laza Fidalgo. Departamento de Informática. Universidad de Vigo

Matriz sobre K = R o C de dimensión m n

CONTENIDOS MÍNIMOS BLOQUE 2. NÚMEROS

2. SEÑALES Y SISTEMAS DISCRETOS EN EL TIEMPO. Una señal puede ser definida como una portadora física de información. Por ejemplo,

VI Colas de prioridad

Sistemas de Ecuaciones Lineales y Matrices

TEMA 1: Funciones elementales

PROGRAMACIÓN DIDÁCTICA

1 Agencia de viajes: enunciado

Semana 6. Factorización. Parte I. Semana Productos 7 notables. Parte II. Empecemos! Qué sabes de...? El reto es...

( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) RESOLUCIÓN MCD (A; B) = C SEMANA 10 MCD - MCM. q = MCM( A;B) MCD ( A,B) = 7 1 MCD A,B = 7 1

3. Métodos clásicos de optimización lineal

Estructuras de Repetición (Repita para)

OPERACIONES CON NÚMEROS REALES

I Parte. Selección única. (4 puntos) Leo y marco con una equis (X) la respuesta correcta.

ÁREA: MATEMÁTICAS UNIDAD : 1 TEMPORALIZACIÓN: OCTUBRE 1ª QUINCENA OBJETIVOS CONTENIDOS CRITERIOS DE EVALUACIÓN

Transcripción:

Ordenación por Inserción y Ordenación por Selección Reglas para calcular O Dept. de Computación, Universidade da Coruña alberto.valderruten@udc.es

Ordenación por Inserción (1) procedimiento Ordenación por Inserción (var T[1..n]) para i:=2 hasta n hacer x:=t[i]; j:=i-1; mientras j>0 y T[j]>x hacer T[j+1]:=T[j]; j:=j-1 fin mientras; T[j+1]:=x fin para fin procedimiento

Ordenación por Inserción (2) 3 1 4 1 2 9 5 6 5 3 1 3 4 1 2 9 5 6 5 3 1 3 4 1 2 9 5 6 5 3 1 1 3 4 2 9 5 6 5 3 1 1 2 3 4 9 5 6 5 3 1 1 2 3 4 9 5 6 5 3 1 1 2 3 4 5 9 6 5 3 1 1 2 3 4 5 6 9 5 3 1 1 2 3 4 5 5 6 9 3 1 1 2 3 3 4 5 5 6 9

Ordenación por Inserción (3) - Análisis de casos Peor caso insertar siempre en la primera posición entrada en orden inverso el bucle interno se ejecuta 1 vez en la primera iteración, 2 veces en la segunda,..., n 1 veces en la última: n 1 i=1 i = n(n 1) iteraciones del bucle interno 2 n i=1 i = n(n+1) 2 T (n) = n(n 1) 2 c 1 + (n 1)c 2 + c 3 : polinomio de grado 2 T (n) = Θ(n 2 ) Mejor caso no insertar nunca entrada ordenada el bucle interno no se ejecuta T (n) = (n 1)c 1 + c 2 : polinomio de grado 1 T (n) = Θ(n) T (n) depende también del estado inicial de la entrada

Ordenación por Selección (1) procedimiento Ordenación por Selección (var T[1..n]) para i:=1 hasta n-1 hacer minj:=i; minx:=t[i]; para j:=i+1 hasta n hacer si T[j]<minx entonces minj:=j; minx:=t[j] fin si fin para; T[minj]:=T[i]; T[i]:=minx fin para fin procedimiento

Ordenación por Selección (2) 3 1 4 1 2 9 5 6 5 3 1 3 4 1 2 9 5 6 5 3 1 1 4 3 2 9 5 6 5 3 1 1 2 3 4 9 5 6 5 3 1 1 2 3 4 9 5 6 5 3 1 1 2 3 3 9 5 6 5 4 1 1 2 3 3 4 5 6 5 9 1 1 2 3 3 4 5 6 5 9 1 1 2 3 3 4 5 5 6 9 1 1 2 3 3 4 5 5 6 9

Ordenación por Selección (3) - Análisis de casos T (n) = Θ(n 2 ) sea cual sea el orden inicial (ejercicio) la comparación interna se ejecuta las mismas veces Empíricamente: T (n) no fluctúa más del 15% algoritmo mínimo máximo Inserción 0,004 5,461 Selección 4,717 5,174 Tabla: Tiempos (en segundos) obtenidos para n = 4000 Comparación: algoritmo peor caso caso medio mejor caso Inserción Θ(n 2 ) Θ(n 2 ) Θ(n) Selección Θ(n 2 ) Θ(n 2 ) Θ(n 2 ) Quicksort O(n 2 ) O(nlogn) O(nlogn)

Reglas para calcular O (1) 1. operación elemental = 1 Modelo de Computación

Reglas para calcular O (2) 2. secuencia: S 1 = O(f 1 (n)) S 2 = O(f 2 (n)) S 1 ;S 2 = O(f 1 (n) + f 2 (n)) = O(max(f 1 (n),f 2 (n))) También con Θ

Reglas para calcular O (3) 3. condición: B = O(f B (n)) S 1 = O(f 1 (n)) S 2 = O(f 2 (n)) si B entonces S 1 sino S 2 = O(max(f B (n),f 1 (n),f 2 (n))) Si f 1 (n) f 2 (n) y max(f 1 (n),f 2 (n)) > f B (n) Peor caso Caso medio? f(n): promedio de f 1 y f 2 ponderado con las frecuencias de cada rama O(max(f B (n),f(n)))

Reglas para calcular O (4) 4. iteración: B;S = O(f B,S (n)) n o iter= O(f iter (n)) mientras B hacer S = O(f B,S (n) f iter (n)) ssi el coste de las iteraciones no varía, sino: costes indiv. para i x hasta y hacer S = O(f S (n) n o iter) ssi el coste de las iteraciones no varía, sino: costes indiv. B es comparar 2 enteros = O(1); n o iter = y x + 1

Reglas para calcular O (5) Uso de las reglas: análisis de adentro hacia afuera analizar primero los subprogramas recursividad: intentar tratarla como un ciclo, sino resolver relación de recurrencia Ejemplo: n i=1 i3 función suma (n:entero) : entero {1} s:=0; {2} para i:=1 hasta n hacer {3} s:=s+i*i*i; {4} devolver s fin función El razonamiento ya incluye las aproximaciones Θ(1) en {3} y no hay variaciones Θ(n) en {2} (regla 4) T (n) = Θ(n) (regla 2)

Ordenación por Selección (3) procedimiento Ordenación por Selección (var T[1..n]) {1} para i:=1 hasta n-1 hacer {2} minj:=i; minx:=t[i]; {3} para j:=i+1 hasta n hacer {4} si T[j]<minx entonces {5} minj:=j; minx:=t[j] fin si fin para; {6} T[minj]:=T[i]; T[i]:=minx fin para fin procedimiento

Ordenación por Selección (4) Θ(1) en {5} (regla 2) O(max(Θ(1),Θ(1),0)) = Θ(1) en {4} (regla 3: no estamos en peor caso) S = Θ(1); n o iter=n i Θ(n i) en {3} (regla 4) Θ(1) en {2} y en {6} (regla 2) Θ(n i) en {2-6} (regla 2) { i = 1 S = Θ(n i) varía: i = n 1 Θ(n) Θ(1) n 1 i=1 (n i) = n 1 i=1 n n 1 i=1 i en {1} (regla 4) = (n 1)n n(n 1) : polinomio de grado 2 2 T (n) = Θ(n 2 ) en cualquier caso