Definición: Reorganizar un conjunto dado de objetos en una secuencia especificada Objetivo: Facilitar la búsqueda de los elementos del conjunto ordenado.

Slides:



Advertisements
Presentaciones similares
Capítulo 2 Algoritmos.
Advertisements

Arreglos Unidimensionales y Bidimensionales ESTRUCTURAS DE DATOS I
Sesión 3 Estructuras Repetitivas
Procesamiento de cadenas
Unidad 1 DISEÑO DE ALGORITMOS ING. Nelwi Baez. MSC
Búsqueda con retroceso
Investigación de Operaciones
Programación II de febrero de 2009
SECUENCIACION DE N TRABAJOS EN UN CENTRO DE TRABAJO.
ORDENACION POR EL METODO DE LA SACUDIDA (SHAKER SORT)
Curso de Programación 1 Plan 97
MÉTODOS DE CLASIFICACION
PROGRAMACION DE ESTRUCTURAS DE DATOS IV. MÉTODOS DE ORDENAMIENTO.
METODO DE ORDENAMIENTO POR SELECCIÓN.
Unidad 3 Punteros.
2 Acciones y funciones 2.1 Concepto
Recurrencia Programación II 3-4 de febrero de 2009.
Ordenación, Clasificación
2- SIMPLEX.
Ejercicios de funciones
ESTRUCTURAS CONTROL SECUENCIAL
Unidad II Aplicaciones con Arreglos en Java y C++
Algoritmo Simplex Dual Como sabemos, el método simplex es un algoritmo iterativo que iniciando en una solución básica factible pero no óptima, genera soluciones.
TABLAS Definición. El tipo tabla permite definir objetos formados por un conjunto de elementos del mismo tipo. Ejemplos. El tipo tabla se utiliza para.
Resolución de Problemas Método Simplex
3.1 Declaración de tablas en C
M.C. Yalu Galicia Hdez. (FCC/BUAP)
Complejidad Programación II de febrero de 2009.
Programación Lineal Unidad 1 Parte 3.
Algoritmos numéricos. Método de “aproximación sucesiva”: se genera una hipótesis sobre la respuesta y en cada iteración se utiliza dicha hipóte- sis para.
Algoritmos para Ordenar datos
TABLAS Definición. El tipo tabla permite definir objetos formados por un conjunto de elementos del mismo tipo. Ejemplos. El tipo tabla se utiliza para.
Algoritmos.
Objetivo: Facilitar la búsqueda de los elementos del conjunto ordenado
COMPUTACION 2009 Clase 6 Clase 7.
Programación II 3-4 de marzo de 2009
Programación IMC José Andrés Vázquez Flores. Definición Un arreglo es un conjunto finito e indexado de elementos homogéneos, que se referencian por un.
Diseño y análisis de algoritmos
Ramificación y acotación (Branch and Bound)
Búsqueda y ordenación Programación II 7-8 de enero de 2009.
Algoritmos de Búsqueda Simulated Annealing Es un algoritmo de Hill­Climmbing estocástico. Inspirado en el proceso físico (Termodinámica) de enfriamiento.
Ing. En sistemas computacionales Estructuras de datos Tema: método de ordenamiento burbuja.
Ordenación y Búsqueda.
MÉTODO DE PIXELES DE BORDE
Seguridad y encriptación
Arreglos Programación I MC Beatriz Beltrán Martínez.
MÉTODO DE APROXIMACIÓN DE VOGEL
PILAS Una pila es una estructura de datos o lista de elementos, a la cual se le puede insertar o eliminar su contenido sólo por uno de sus extremos, llamado.
REGLAS PARA CALCULAR EL R. F. C.
Parte I. Estructuras de Datos.
Análisis Léxico Área Software de Base.
Computación y Programación Fundamentos de Informática
Parte I. Estructuras de Datos.
Algoritmos y Estructura de Datos Tema: Vectores 2
Fundamentos de Programación
Ordenamiento en lenguaje c
Visual Basic EVENTOS A continuación se presentan brevemente los eventos más normales que reconoce Visual Basic 6.0. KeyPress, KeyUp y KeyDown.
Estructura de datos I CIS - UABJB.
Quick Sort Estructuras de Datos Universidad Autónoma de Tlaxcala Unidad Académica Multidisciplinaria 14 de Septiembre de 2012.
Arreglos Vectores y Matrices.
METODOS DE BUSQUEDA EN C++ Oscar Michel Ruiz León
ACCESS  Para los campos Texto, esta propiedad determina el número máximo de caracteres que se pueden introducir en el campo. Siendo por defecto.
Computación I. CI-2125 Tema VII
Simulación de un AFD Conversión de un AFND a un AFD.
ORDENAMIENTO DE DATOS Jorge Méndez Sánchez Eliúh Cuecuecha Hernández

- Máximo común divisor. - Máximo común múltiplo.
Programación Dinámica  La programación dinámica se suele utilizar en problemas de optimización, donde una solución está formada por una serie de decisiones.
Representación de la Información en el Computador Prof. Manuel B. Sánchez.
UNIVERSIDAD AUTÓNOMA DEL ESTADO DE MÉXICO FACULTAD DE INGENIERÍA COORDINACIÓN DE MATERIAS PROPEDÉUTICAS INGENIERÍA EN SISTEMAS ENERGÉTICOS SUSTENTABLES.
Transcripción de la presentación:

Definición: Reorganizar un conjunto dado de objetos en una secuencia especificada Objetivo: Facilitar la búsqueda de los elementos del conjunto ordenado Métodos de ordenación

Los métodos óptimos para ordenar un número pequeño de elementos: –Ordenación por selección –Ordenación por insercción directa –Ordenación mediante el método de la burbuja Utilizan un sola tabla Para ordenar valores grandes existen mejoras de estos tres métodos Métodos de ordenación

Ordena una tabla de n elementos en n-1 iteracciones –Inicialmente no hay posiciones ordenadas –En cada iteracción se ordena una nueva posición de la tabla –En la iteración i se habrán ordenado las i primeras posiciones de la tabla Ordenación por selección

Operaciones básicas: –Selecciona el elemento con clave mínima –Intercambio con el primer elemento, a 1 Se repiten estas operaciones con los elementos n-1, n-2,..., restantes hasta que quede un único elemento, que queda ya ordenado Ordenación por selección

Posición inicial | | Primera iteración Se ordena la primera posición –Se busca el mínimo entre todos los elementos –Se intercambian el primer valor y el valor mínimo Ordenación por selección

Primera iteración Segunda iteración Se ordena la segunda posición –Se busca el mínimo entre los elementos que están entre la segunda y la última posición –No se realiza ningún cambio, porque el valor mínimo es el que está en la posición a ordenar Ordenación por selección

Segunda iteración | | Tercera iteración Se ordena la tercera posición –Se busca el mínimo entre los elementos que están entre la tercera y la última posición –Se intercambia el valor de la tercera posición y el valor mínimo Ordenación por selección

Tercera iteración Cuarta iteración Se ordena la cuarta posición –Se busca el mínimo entre los elementos que están entre la cuarta y la última posición – No se realiza ningún cambio, porque el valor mínimo es el que está en la posición a ordenar La última posición queda ordenada Ordenación por selección

Posición inicial | | Primera iteración Segunda iteración | | Tercera iteración Cuarta iteración Ordenación por selección

para j en [1..n-1] hacer “ asignar a jmin el índice correspondiente al elemento con clave mínima de a j.. a n ” “ intercambiar a j y a jmin “ fpara Ordenación por selección ALGORITMO GENERAL

algoritmo Ordenación const N: entero = 25 fconst tipos vector = tabla [1..N] de entero ftipos var v: vector; j, jmin, aux: entero fvar

para j en [1.. n-1] hacer jmin := j para k en [j+1.. n] hacer si v[k] < v[jmin] entonces jmin := k fsi fpara si jmin > j entonces aux := v[jmin]; v[jmin] := v[j]; v[j] := aux fsi fpara falgoritmo

const Num: entero = 25 fconst tipos vector = tabla [1..Num] de entero ftipos Ordenación por selección

acción Ord_selección (e/s a: vector, ent n: entero) var j, jmin: entero fvar para j en [1.. n-1] hacer jmin := Mínimo ( a, j, n) si jmin > j entonces Intercambiar (a, j, jmin) fsi fpara facción Ordenación por selección

función Mínimo (ent a: vector, ent j, n: entero) retorna entero var k, min: entero fvar min := j para k en [j+1.. n] hacer si a[k] < a[min] entonces min := k fsi fpara retorna min ffunción Ordenación por selección

acción Intercambiar (e/s a: vector, ent j, k: entero) var aux: entero fvar aux := a[j] a[j] := a[k] a[k] := aux facción Ordenación por selección

algoritmo Ordenación_palabras const Numc: entero = 25 Nump: entero = 100 fconst tipos tpalabra = tabla [1..Nump] de palabra palabra = tabla [1..Numc] de carácter ftipos Ordenación por selección

algoritmo Ordenación_palabras Definición de tipos var tp: tpalabra j, dim : entero fvar LeerPalabras ( tp, dim) Ord_selección ( tp, dim ) EscribirPalabras ( tp, dim) falgoritmo Ordenación por selección

acción Ord_selección (e/s tp:tpalabra, ent n:entero) var j, jmin: entero fvar para j en [1.. n-1] hacer jmin := Mínimo(tp, j, n) si jmin > j entonces Intercambiar (tp, j, jmin) fsi fpara facción Ordenación por selección

función Mínimo (ent tp:tpalabra, ent j, n:entero) retorna entero var k, min: entero fvar min := j para k en [ j+1.. n] hacer si tp[k] < tp[min] entonces min := k fsi fpara retorna min ffunción Ordenación por selección

acción Intercambiar(e/s tp:tpalabra, ent j,k :entero) var aux: palabra fvar aux := tp[j] tp[j] := tp[k] tp[k]:= aux facción Ordenación por selección

acción LleerPalabras(sal tp:tpalabra,sal n:entero) n := 1 tp[n] := LeerPalabra() mientras tp[n] != "." hacer n := n+1 tp[n] := LeerPalabra() fmientras n := n-1 facción Ordenación por selección

acción EscribirPalabras (ent tp:tpalabra, ent n:entero) var j : entero fvar para j en [1.. n] hacer EscribirPalabra (tp[j]) fpara facción Ordenación por selección

const Numc: entero = 25 Nump: entero = 100 fconst tipos tpersona = tabla [1..Nump] de persona persona = tupla dni, edat : entero apellido1,apellido2 : palabra ftupla palabra = tabla [1..Numc] de carácter ftipos Ordenación por selección

algoritmo Ordenación_personas Definición de tipos var tp: tpersona j, dim : entero fvar LeerPersonas ( tp, dim) Ord_selección ( tp, dim ) EscribirPersonas ( tp, dim) falgoritmo Ordenación por selección

acción Ord_selección (e/s tp:tpersona, ent n:entero) var j, jmin: entero fvar para j en [1.. n-1] hacer jmin := Mínimo(tp, j, n) si jmin > j entonces Intercambiar (tp, j, jmin) fsi fpara facción Ordenación por selección

función Mínimo (ent tp:tpersona, ent j, n:entero) retorna entero var k, min: entero fvar min := j para k en [ j+1.. n] hacer si tp[k].apellido1 < tp[min].apellido1 o (tp[k].apellido1 = tp[min].apellido1 i tp[k].apellido2 < tp[min].apellido2) entonces min := k fsi fpara retorna min ffunción Ordenación por selección

acción Intercambiar(e/s tp:tpersona, ent j,k :entero) var aux: persona fvar aux := tp[j] tp[j] := tp[k] tp[k]:= aux facción Ordenación por selección