SlideShare una empresa de Scribd logo
1 de 14
PROGRAMACIÓN DINÁMICA
Realizado por:
Br. Silva Mattey, Luis Felipe
C.I.: 20.905.586
Profesor: Ing. Diógenes Rodríguez
Porlamar, Julio 2013.
Con esta revolución tecnológica que se ha venido presentando, la cantidad de
datos actualmente ha venido aumentando su volumen y estos para ser procesados de
forma correcta necesitan ser ordenados previamente, el ordenamiento de datos es
simplemente colocarlos de manera que se cree una simple información basándose en
un criterio de ordenamiento. Para esto existen distintos métodos de ordenamiento que
permiten arreglar los datos de una tabla en algún orden secuencial ya sea numérico,
alfabético, alfanumérico, ascendente o descendente, en la siguiente presentación se
explicara 4 métodos conocidos para el ordenamiento de datos.
El método de ordenamiento Shell Sort debe su nombre al ingeniero y matemático
estadounidense Donald Shell. Este método se basa en dos características como son:
El ordenamiento por inserción es eficiente si la entrada está "casi ordenada".
El ordenamiento por inserción es ineficiente, en general, porque mueve los valores
sólo una posición cada vez.
Entre los pasos a seguir para el método de ordenamiento Shell Sort están
los siguientes:
• Primer paso, se divide la lista de elementos entre n/2 grupos de dos.
Considerando un incremente o salto entre los elementos de n/2.
• Segundo paso, clasificar cada grupo por separado, comparando las
parejas de elementos y si no están ordenado se intercambian.
• Tercer paso, se divide ahora la lista en la mitad de grupos (n/4) con un
intercambio o salto entre los elementos también (n/4) y nuevamente se
clasifica cada grupo por separado.
• Así sucesivamente, se sigue dividiendo la lista en la mitad de grupos. El
algoritmo termina cuando se consigue cuando el tamaño del salto es 1.
3, 8, 5, 1, 6, 7, 2, 4
Se cuenta la cantidad de elementos en total, n=8, luego se aplica la formula
de n/2, la cual seria 8/2= 4, entonces nuestra lista se dividiría en dos grupos
de 4.
3, 8, 5, 1 | 6, 7, 2, 4
Se procede a comparar los elementos ente 3 - 1 y entre 6 - 4 para realizar los
ordenamientos entre los cuales se cambiaria el 8 por el 7 y el 5 por el 2 y
nuestra lista quedaría de la siguiente manera.
3, 7, 2, 1, 6, 8, 5, 4
Se procede a aplicar de nuevo la formula n/2, con la diferencia que nuestra n
seria 4 debido a que tenemos dos grupos de 4 la cual seria 4/2= 2, entonces
en nuestra lista se realizaran saltos de dos en dos. Nuestra lista quedaría de
la siguiente manera.
2, 1, 3, 7, 5, 4, 6, 8
Se puede volver a realizar un salto de dos en dos si algún elemento no se
encuentra en orden para el salto de uno en uno, siguiendo esto nuestra
lista quedaría de la siguiente manera.
2, 1, 3, 4, 5, 7, 6, 8
Finalmente se aplica por última vez la formula n/2, con la diferencia que
nuestra n seria 2 por el salto anterior 2/2= 1, entonces en nuestra lista se
realizaran saltos de uno en uno. Nuestra lista quedaría de la siguiente
manera.
1, 2, 3, 4, 5, 6, 7, 8
El método de ordenamiento de burbuja es uno de los métodos
más sencillos se basa revisando cada elemento de una lista que va a
ser ordenada, lo fundamental de este método es intercambiar los
elementos si están ordenados de manera equivocada, el método usa
comparaciones para operar elementos. Se debe realizar varias
revisiones a toda la lista hasta que no se necesario realizar
intercambios
Se sigue sucesivamente comparando el 30 con los elemento 4,
12, 28. Se realiza el cambio debido a que el 30 es mayor que los
elementos ya expuestos anteriormente, entonces nuestra lista
quedaría:
18, 1, 4, 12, 28, 30
Sin embargo se puede ver que nuestra lista no está
totalmente ordenada, es decir se procede a realizar la
comparación con el siguiente elemento al inicio de la lista.
Comparamos el numero 18 con el numero 1 y al ver que el
número 18 es mayor se procede a realizar el cambio. Entonces
nuestra listaquedarade lasiguientemanera:
1, 18, 4, 12, 28, 30
30, 18, 1, 4, 12, 28
Siguiendo el método de la
burbuja debemos ordenar el arreglo
realizando comparación entre los
elementos de la lista, entonces iniciamos
la comparación con el primer elemento
que sería el 30 y se compara con el
numero 18. Después de esta
comparación al ver que el 30 es mayor
que el 18 se procede al cambio. Nuestra
lista quedaría de la siguiente manera:
18, 30, 1, 4, 12, 28
Se sigue la comparación entre el
30 con el número 1 y al ver que el
número 1 es menor se procede a
realizarse el cambio, nuestra lista
quedara de la siguiente manera:
18, 1, 30, 4, 12, 28
Se sigue sucesivamente
comparando el 30 con los elemento 4, 12,
28. Se realiza el cambio debido a que el 30
es mayor que los elementos ya expuestos
anteriormente, entonces nuestra lista
quedaría:
18, 1, 4, 12, 28, 30
Sin embargo se puede ver que
nuestra lista no está totalmente ordenada,
es decir se procede a realizar la
comparación con el siguiente elemento al
inicio de la lista. Comparamos el numero
18 con el numero 1 y al ver que el número
18 es mayor se procede a realizar el
cambio. Entonces nuestra lista quedara de
la siguiente manera:
1, 18, 4, 12, 28, 30
Y sucesivamente se compara el 18
con el 4 para seguir ordenando la
lista, entonces quedaría:
1, 4, 18, 12, 28, 30
Luego se compara el 18 con el 12
y al ver que el 18 es mayo se procede a
realizarse el cambio. Nuestra lista
quedaría:
1, 4, 12, 18, 28, 30
Y así nuestra lista queda
correctamente ordena.
Este método fue creado por el matemático húngaro John Von
Neumann en 1945. Se basa en la premisa de divide y vencerás y de
acuerdo a esto el ordenamiento se realiza mediante la división del
vector a ordenar en dos partes iguales, ordenando las dos mitades
por separado y luego mezclarlas manteniendo el orden, en un solo
vector ordenado.
La premisa de divide y vencerás en este método se cumple
siguiendo tres pasos fundamentales los cuales son:
Primer paso es DIVIDIR: se divide la secuencia de "n" elementos
a ordenar en dos subsecuencias de "n/2" elementos cada una.
Segundo paso es VENCER: se ordenan las dos subsecuencias
de manera recursiva mediante el algoritmo MERGESORT.
Tercer paso COMBINAR: se combina las dos subsecuencias
ordenadas para generar la solución.
Como se puede
observar se va dividiendo
la lista de dos en dos
hasta que los elemento
quedan totalmente
separados uno de otro
para luego empezar con la
mezcla e ir ordenándolos
de menor a mayor hasta
que nuestra lista queda
totalmente ordenada.
Es una forma de optimización, este método tiene como
base un problema el consiste en maximizar el valor de los
objetos que se introduzcan en la mochila.
existen dos variantes del problema:
Mochila fraccionada: Los objetos se pueden fraccionar, es
decir se puede colocar en la mochila trozos de objetos.
Mochila entera: Los objetos no se pueden fraccionar y por
tanto deben ir enteros en la mochila.
En ambas versiones se debe tomar en cuenta que son
problemas de optimización (maximización). Sólo nos interesa
una solución, la óptima.
Una empresa dispone de un millón de bolívares para invertir en nuevos proyectos. En concreto
dispone de tres nuevos proyectos posibles. En la siguiente tabla aparece el costo que supone cada
uno de ellos, así como el beneficio que se espera de su realización. La empresa desea saber en cual
debe invertir si quiere maximizar su beneficio esperado sin superar su presupuesto.
Para resorberlo, llamamos xi a una variable binaria que
toma el valor 1 si se elige el proyecto i (i = 1, 2, 3, 4) y cero en
caso contrario.
En este problema nos encontramos como restricciones
solo la presupuestaria luego la formulación del mismo es
como “problema de la mochila”:
Resolviendo obtenemos que la mejor opción es elegir los
proyectos 2 y 3 alcanzándose un beneficio esperado de 3.500.000
Programación dinámica y ordenamiento de datos

Más contenido relacionado

Similar a Programación dinámica y ordenamiento de datos

Similar a Programación dinámica y ordenamiento de datos (20)

Presentacion recursividad
Presentacion recursividadPresentacion recursividad
Presentacion recursividad
 
Presentacion programacion
Presentacion programacionPresentacion programacion
Presentacion programacion
 
Programacion
ProgramacionProgramacion
Programacion
 
Arrays metodos deordenamiento01
Arrays metodos deordenamiento01Arrays metodos deordenamiento01
Arrays metodos deordenamiento01
 
datos de ordenamiento
datos de ordenamientodatos de ordenamiento
datos de ordenamiento
 
Informe ordenamiento
Informe ordenamientoInforme ordenamiento
Informe ordenamiento
 
Reporte metodos de busqueda y ordenamiento
Reporte metodos de busqueda y ordenamientoReporte metodos de busqueda y ordenamiento
Reporte metodos de busqueda y ordenamiento
 
Algoritmos Ordenamiento
Algoritmos OrdenamientoAlgoritmos Ordenamiento
Algoritmos Ordenamiento
 
Josemanueunidad4 investigacionmetodos
Josemanueunidad4 investigacionmetodosJosemanueunidad4 investigacionmetodos
Josemanueunidad4 investigacionmetodos
 
Metodos de ordenamiento
Metodos de ordenamientoMetodos de ordenamiento
Metodos de ordenamiento
 
Unidad 5
Unidad 5Unidad 5
Unidad 5
 
Unidad 5
Unidad 5Unidad 5
Unidad 5
 
Algoritmos ordenación.pptx
Algoritmos ordenación.pptxAlgoritmos ordenación.pptx
Algoritmos ordenación.pptx
 
Algoritmos de ordenamiento
Algoritmos de ordenamientoAlgoritmos de ordenamiento
Algoritmos de ordenamiento
 
Metodos De Ordenamiento
Metodos De OrdenamientoMetodos De Ordenamiento
Metodos De Ordenamiento
 
Informe técnico - Métodos de búsqueda Unidad 6 (Rubí Verónica)
Informe técnico - Métodos de búsqueda Unidad 6 (Rubí Verónica)Informe técnico - Métodos de búsqueda Unidad 6 (Rubí Verónica)
Informe técnico - Métodos de búsqueda Unidad 6 (Rubí Verónica)
 
Quicksort
QuicksortQuicksort
Quicksort
 
Metodo burbuja
Metodo burbujaMetodo burbuja
Metodo burbuja
 
metodos-de-ordenamiento.pdf
metodos-de-ordenamiento.pdfmetodos-de-ordenamiento.pdf
metodos-de-ordenamiento.pdf
 
02 uni1-estructuras de datos-arreglos
02 uni1-estructuras de datos-arreglos02 uni1-estructuras de datos-arreglos
02 uni1-estructuras de datos-arreglos
 

Programación dinámica y ordenamiento de datos

  • 1. PROGRAMACIÓN DINÁMICA Realizado por: Br. Silva Mattey, Luis Felipe C.I.: 20.905.586 Profesor: Ing. Diógenes Rodríguez Porlamar, Julio 2013.
  • 2. Con esta revolución tecnológica que se ha venido presentando, la cantidad de datos actualmente ha venido aumentando su volumen y estos para ser procesados de forma correcta necesitan ser ordenados previamente, el ordenamiento de datos es simplemente colocarlos de manera que se cree una simple información basándose en un criterio de ordenamiento. Para esto existen distintos métodos de ordenamiento que permiten arreglar los datos de una tabla en algún orden secuencial ya sea numérico, alfabético, alfanumérico, ascendente o descendente, en la siguiente presentación se explicara 4 métodos conocidos para el ordenamiento de datos.
  • 3. El método de ordenamiento Shell Sort debe su nombre al ingeniero y matemático estadounidense Donald Shell. Este método se basa en dos características como son: El ordenamiento por inserción es eficiente si la entrada está "casi ordenada". El ordenamiento por inserción es ineficiente, en general, porque mueve los valores sólo una posición cada vez. Entre los pasos a seguir para el método de ordenamiento Shell Sort están los siguientes: • Primer paso, se divide la lista de elementos entre n/2 grupos de dos. Considerando un incremente o salto entre los elementos de n/2. • Segundo paso, clasificar cada grupo por separado, comparando las parejas de elementos y si no están ordenado se intercambian. • Tercer paso, se divide ahora la lista en la mitad de grupos (n/4) con un intercambio o salto entre los elementos también (n/4) y nuevamente se clasifica cada grupo por separado. • Así sucesivamente, se sigue dividiendo la lista en la mitad de grupos. El algoritmo termina cuando se consigue cuando el tamaño del salto es 1.
  • 4. 3, 8, 5, 1, 6, 7, 2, 4 Se cuenta la cantidad de elementos en total, n=8, luego se aplica la formula de n/2, la cual seria 8/2= 4, entonces nuestra lista se dividiría en dos grupos de 4. 3, 8, 5, 1 | 6, 7, 2, 4 Se procede a comparar los elementos ente 3 - 1 y entre 6 - 4 para realizar los ordenamientos entre los cuales se cambiaria el 8 por el 7 y el 5 por el 2 y nuestra lista quedaría de la siguiente manera. 3, 7, 2, 1, 6, 8, 5, 4 Se procede a aplicar de nuevo la formula n/2, con la diferencia que nuestra n seria 4 debido a que tenemos dos grupos de 4 la cual seria 4/2= 2, entonces en nuestra lista se realizaran saltos de dos en dos. Nuestra lista quedaría de la siguiente manera. 2, 1, 3, 7, 5, 4, 6, 8
  • 5. Se puede volver a realizar un salto de dos en dos si algún elemento no se encuentra en orden para el salto de uno en uno, siguiendo esto nuestra lista quedaría de la siguiente manera. 2, 1, 3, 4, 5, 7, 6, 8 Finalmente se aplica por última vez la formula n/2, con la diferencia que nuestra n seria 2 por el salto anterior 2/2= 1, entonces en nuestra lista se realizaran saltos de uno en uno. Nuestra lista quedaría de la siguiente manera. 1, 2, 3, 4, 5, 6, 7, 8
  • 6. El método de ordenamiento de burbuja es uno de los métodos más sencillos se basa revisando cada elemento de una lista que va a ser ordenada, lo fundamental de este método es intercambiar los elementos si están ordenados de manera equivocada, el método usa comparaciones para operar elementos. Se debe realizar varias revisiones a toda la lista hasta que no se necesario realizar intercambios
  • 7. Se sigue sucesivamente comparando el 30 con los elemento 4, 12, 28. Se realiza el cambio debido a que el 30 es mayor que los elementos ya expuestos anteriormente, entonces nuestra lista quedaría: 18, 1, 4, 12, 28, 30 Sin embargo se puede ver que nuestra lista no está totalmente ordenada, es decir se procede a realizar la comparación con el siguiente elemento al inicio de la lista. Comparamos el numero 18 con el numero 1 y al ver que el número 18 es mayor se procede a realizar el cambio. Entonces nuestra listaquedarade lasiguientemanera: 1, 18, 4, 12, 28, 30 30, 18, 1, 4, 12, 28 Siguiendo el método de la burbuja debemos ordenar el arreglo realizando comparación entre los elementos de la lista, entonces iniciamos la comparación con el primer elemento que sería el 30 y se compara con el numero 18. Después de esta comparación al ver que el 30 es mayor que el 18 se procede al cambio. Nuestra lista quedaría de la siguiente manera: 18, 30, 1, 4, 12, 28 Se sigue la comparación entre el 30 con el número 1 y al ver que el número 1 es menor se procede a realizarse el cambio, nuestra lista quedara de la siguiente manera: 18, 1, 30, 4, 12, 28
  • 8. Se sigue sucesivamente comparando el 30 con los elemento 4, 12, 28. Se realiza el cambio debido a que el 30 es mayor que los elementos ya expuestos anteriormente, entonces nuestra lista quedaría: 18, 1, 4, 12, 28, 30 Sin embargo se puede ver que nuestra lista no está totalmente ordenada, es decir se procede a realizar la comparación con el siguiente elemento al inicio de la lista. Comparamos el numero 18 con el numero 1 y al ver que el número 18 es mayor se procede a realizar el cambio. Entonces nuestra lista quedara de la siguiente manera: 1, 18, 4, 12, 28, 30
  • 9. Y sucesivamente se compara el 18 con el 4 para seguir ordenando la lista, entonces quedaría: 1, 4, 18, 12, 28, 30 Luego se compara el 18 con el 12 y al ver que el 18 es mayo se procede a realizarse el cambio. Nuestra lista quedaría: 1, 4, 12, 18, 28, 30 Y así nuestra lista queda correctamente ordena.
  • 10. Este método fue creado por el matemático húngaro John Von Neumann en 1945. Se basa en la premisa de divide y vencerás y de acuerdo a esto el ordenamiento se realiza mediante la división del vector a ordenar en dos partes iguales, ordenando las dos mitades por separado y luego mezclarlas manteniendo el orden, en un solo vector ordenado. La premisa de divide y vencerás en este método se cumple siguiendo tres pasos fundamentales los cuales son: Primer paso es DIVIDIR: se divide la secuencia de "n" elementos a ordenar en dos subsecuencias de "n/2" elementos cada una. Segundo paso es VENCER: se ordenan las dos subsecuencias de manera recursiva mediante el algoritmo MERGESORT. Tercer paso COMBINAR: se combina las dos subsecuencias ordenadas para generar la solución.
  • 11. Como se puede observar se va dividiendo la lista de dos en dos hasta que los elemento quedan totalmente separados uno de otro para luego empezar con la mezcla e ir ordenándolos de menor a mayor hasta que nuestra lista queda totalmente ordenada.
  • 12. Es una forma de optimización, este método tiene como base un problema el consiste en maximizar el valor de los objetos que se introduzcan en la mochila. existen dos variantes del problema: Mochila fraccionada: Los objetos se pueden fraccionar, es decir se puede colocar en la mochila trozos de objetos. Mochila entera: Los objetos no se pueden fraccionar y por tanto deben ir enteros en la mochila. En ambas versiones se debe tomar en cuenta que son problemas de optimización (maximización). Sólo nos interesa una solución, la óptima.
  • 13. Una empresa dispone de un millón de bolívares para invertir en nuevos proyectos. En concreto dispone de tres nuevos proyectos posibles. En la siguiente tabla aparece el costo que supone cada uno de ellos, así como el beneficio que se espera de su realización. La empresa desea saber en cual debe invertir si quiere maximizar su beneficio esperado sin superar su presupuesto. Para resorberlo, llamamos xi a una variable binaria que toma el valor 1 si se elige el proyecto i (i = 1, 2, 3, 4) y cero en caso contrario. En este problema nos encontramos como restricciones solo la presupuestaria luego la formulación del mismo es como “problema de la mochila”: Resolviendo obtenemos que la mejor opción es elegir los proyectos 2 y 3 alcanzándose un beneficio esperado de 3.500.000