SlideShare una empresa de Scribd logo
1 de 20
MÉTODOS DE ORDENAMIENTO
ING. CÉSARAUGUSTO GUTIÉRREZ RODRÍGUEZ
Introducción
Los métodos de ordenamiento nos permiten, organizar la
información contenida en vectores o matrices con valores
asignados manual o aleatoriamente.
Veremos los métodos mas utilizados, analizando la
cantidad de comparaciones que suceden, el tiempo que
demora y revisando el código, escrito en Java, de cada
algoritmo.
Método Burbuja
El método de la burbuja es uno de los mas simples, es tan fácil como
comparar todos los elementos de una lista contra todos, si se cumple
que uno es mayor o menor a otro, entonces los intercambia de
posición.
Se denomina burbuja debido a que los valores más pequeños
«burbujean» gradualmente (suben) hacia la cima o parte superior del
array de modo similar a como suben las burbujas en el agua, mientras
que los valores mayores se hunden en la parte inferior del array.
Método Burbuja Simple
▪ La burbuja mas simple de todas es la que compara todos con todos,
generando comparaciones extras, por ejemplo, no tiene sentido que
se compare con sigo mismo o que se compare con los valores
anteriores a el, ya que supuestamente, ya están ordenados.
▪ Por ejemplo, imaginemos que tenemos los siguientes valores:
Lo que haría una burbuja simple, seria comenzar recorriendo los
valores de izq. A derecha, comenzando por el 5. Lo compara con
el 6, con el 1, con el 0 y con el 3, si es mayor o menor
(dependiendo si el orden es ascendiente o descendiente) se
intercambian de posición. Luego continua con el siguiente, con el
6, y lo compara con todos los elementos de la lista, esperando ver
si se cumple o no la misma condición que con el primer elemento.
Así, sucesivamente, hasta el ultimo elemento de la lista.
5 6 1 0 3
Estructura En JAVA
for (i=0; i<n; i++)
{
for (j=i+1; j<n; j++)
{
if(V[i]>V[j])
{
aux =V[i];
V[i] =V[j];
V[j] = aux;
}
}
}
Ejemplo:
▪ Elementos (A = 50, 20, 40, 80, 30), donde se introduce una variable
interruptor para detectar si se ha producido intercambio en la pasada.
▪ Pasada 0
50 20 40 80 30 Intercambio 50 y 20
20 50 40 80 30 Intercambio 50 y 40
20 40 50 80 30 50 y 80 ordenados
20 40 50 80 30 Intercambio 80 y 30
20 40 50 30 80
Elemento mayor es
80
interruptor = TRUE
▪ Pasada 1
20 y 40 ordenados
40 y 50 ordenados
Se intercambian 50 y 30
• 50 y 80 elementos
mayores y ordenados
• interruptor = TRUE
20 40 50 30 80
20 40 50 30 80
20 40 50 30 80
20 40 30 50 80
▪ Pasada 2.- Solo se hacen dos comparaciones.
Se intercambian 40 y 30
interruptor = TRUE
20 y 40 ordenados20 40 30 50 80
20 30 40 50 80
 Pasada 3.- Se hace una única comparación de 20 y 30, y no se produce
intercambio:
20 30 40 50 80
20 y 30 ordenados
Lista ordenada
interruptor = FALSE
20 30 40 50 80
Método Selección
▪ Los métodos de ordenación por selección se basan en dos principios básicos:
Seleccionar el elemento más pequeño (o más grande) del arreglo.
Colocarlo en la posición más baja (o más alta) del arreglo.
A diferencia del método de la burbuja, en este método el elemento más
pequeño (o más grande) es el que se coloca en la posición final que le
corresponde.
▪ Consideremos un array A con 5 valores enteros 51, 21, 39, 80, 36:
Pasada 0.
Seleccionar 21
Intercambiar 21 y
A[0]
51 21 39 80 39
A[0] A[1] A[2] A[3] A[4]
Pasada 0
21 51 39 80 36
Pasada 1
Pasada 1.
Seleccionar 36
Intercambiar 36 y
A[1]
21 36 39 80 51
Pasada 2
Pasada 2.
Seleccionar 39
Intercambiar 39 y
A[2]
21 36 39 80 51
Pasada 3
Pasada 3.
Seleccionar 51
Intercambiar 51 y
A[3]
21 36 39 51 80 Lista ordenada
Estructura en JAVA
▪ for (i=0; i<n; i++)
{
imin=i;
for (j=i+1; j<n; j++)
{
if(V[j]<V[imin])
imin=j;
}
aux =V[i];
V[i] =V[imin];
V[imin] = aux;
}
Método Inserción
▪ El método de ordenación por inserción es similar al proceso típico de ordenar
tarjetas de nombres (cartas de una baraja) por orden alfabético, que consiste
en insertar un nombre en su posición correcta dentro de una lista o archivo
que ya está ordenado.
▪ Así el proceso en el caso de la lista de enteros A = 50, 20, 40, 80, 30.
50 Se comienza por el 50
Procesar 20 5020 Se inserta 20 en la posición 0
50 se mueve a posición 1
Procesar 40
Procesar 80
Procesar 30
5020 40
Se inserta 40 en la posición 1
Se mueve 50 a posición 2
5020 40 80 El elemento 80 está bien
ordenado
5020 40 8030 Se inserta 30 en posición 1
Se desplaza a la derecha la
sublista derecha
Estructura en JAVA
for(i=1; i<n; i++) {
temp =V[i];
Izq = 0;
Der = i-1;
while(Izq <= Der){
Medio = (Izq+Der)/2;
if (temp <V[Medio])
Der = Medio - 1;
else
Izq = Medio + 1;
}
for (j=i-1; j>=Izq; j--){
V[j+1]=V[j];
}
V[Izq] = temp;
}
Método Shell
▪ El nombre se debe a su inventor, D. L. Shell. Se suele
denominar también ordenación por inserción con
incrementos decrecientes. Se considera que el método
Shell es una mejora de los métodos de inserción directa.
▪ Shell modifica los saltos contiguos resultantes de las
comparaciones por saltos de mayor tamaño y con ello se
consigue que la ordenación sea más rápida.
Generalmente se toma como salto inicial n/2 (siendo n el
número de elementos), luego se reduce el salto a la
mitad en cada repetición hasta que el salto es de
tamaño 1.
74, 14, 21, 44, 38, 97, 11, 78, 65, 88, 30
Se debe empezar con k=n/2 , siendo n el número de elementos de
arreglo, y utilizando siempre la división entera.... después iremos
variando k haciéndolo más pequeño mediante sucesivas divisiones por
2, hasta llegar a k=1. Pero vamos a ello... En nuestro ejemplo, n=11
(porque hay 11 elementos). Así que k=n/2=11/2=5
Empezamos con k=5. Así pues, vamos a dividir nuestro arreglo original
en 5 sub-arreglo, en los cuales, sus elementos estarán separados por 5
lugares del arreglo original (el salto o gap es 5).
1.- Tomamos el primer elemento (el 74) contamos 5 lugares y tomamos
también otro elemento (el 97) volvemos a contar 5 y tomamos otro (el
30) y acabamos porque se nos acaba el arreglo. El primer sub-arreglo
con k=5 es el formado por 74, 97 y 30.
74 , 14, 21, 44, 38, 97 , 11, 78, 65, 88, 30
Ejemplo
Ahora, ordenaremos los elementos del sub-arreglo (rojo) pero sólo
entre ellos, utilizando el algoritmo de Inserción directa.
74, 97, 30
30 , 14, 21, 44, 38, 74 , 11, 78, 65, 88, 97
El 30, un elemento relativamente pequeño se ha ido hacia el principio
y el 97 hacia el final.
Formemos ahora otro sub-arreglo con salto k=5... partiendo del
segundo elemento (el 14) y contando 5 (tomamos también el 11) y
hasta ahí, porque se acaba el arreglo.
30 , 14 , 21, 44, 38, 74 , 11 , 78, 65, 88, 97
Vamos a ordenarlos el 11 primero y el 14 después.
30 , 11 , 21, 44, 38, 74 , 14 , 78, 65, 88, 97
30 , 11 , 21, 44, 38, 74 , 14 , 78, 65, 88, 97
Ahora a por otro el 21 y el 78
30 , 11 , 21, 44, 38, 74 , 14 , 78, 65, 88, 97
Están en orden entre ellos, así que se quedan como están.
Ahora le toca al sub-arreglo formado por el 44 y el 65
30 , 11 , 21, 44, 38, 74 , 14 , 78, 65, 88, 97
Que también están en orden entre ellos.
y finalmente el 38 y el 88, que también están en orden.
30 , 11 , 21, 44, 38, 74 , 14 , 78, 65, 88, 97
Aún no hemos terminado de ordenarlos.
Nuestra k valía 5, así que ahora k←k/2=5/2=2, nuestra nueva k vale 2.
Repetimos todo el desarrollo anterior, pero ahora nos saldrán 2 sub-
arreglo cuyos elementos están separados por 2 lugares.
Tomamos el primer elemento (el 30) contamos 2 lugares y tomamos
también otro elemento (el 21) volvemos a contar 2 y tomamos otro
(el 38), volvemos a contar y ahora tomamos (el 14), seguimos
contado y tomamos (el 65), seguimos contando y tomamos (el 97) y
acabamos porque se nos acaba el arreglo. Y posteriormente se
forma el según sub-arreglo que empieza con el 11.
30 , 11 , 21, 44, 38, 74 , 14 , 78, 65, 88, 97
Se ordena (primero los rojos), con el método de inserción:
14 , 11 , 21, 44, 30, 74 , 38 , 78, 65, 88, 97
Finalmente ordenamos los negros, pero estos ya están ordenados:
14 , 11 , 21, 44, 30, 74 , 38 , 78, 65, 88, 97
▪ Finalmente, calculamos un nuevo k dividiendo el que tenemos entre 2.
k←k/2=2/2=1 Hemos llegado a k=1. Cuando k es 1 sólo podemos
obtener 1 sub-arreglo cuyos elementos están separados 1 posición: el
propio arreglo original. Dicho de otra manera... cuando k es 1, el
algoritmo de Shell se comporta exactamente igual que el de inserción
directa sobre todo el arreglo.
14 , 11 , 21, 44, 30, 74 , 38 , 78, 65, 88, 97
▪ El método de inserción directa se comporta tanto mejor cuanto más
cerca está cada elemento de su sitio definitivo. Finalmente, el arreglo
queda de ésta manera:
11, 14, 21, 30, 38, 44, 65, 74, 78, 88, 97
▪ Cada elemento descolocado ha tenido que moverse pocos lugares.
Muchos de ellos ni siquiera se han movido.
Estructura en JAVA
void shellSort(int a[], int h)
{
int i;
while (h > 0)
{ for (i = h-1; i<n; i++)
{
int B = a[i];
int j = i;
for (j = i; (j >= h) && (a[j - h] > B); j -= h)
{ a[j] = a[j - h];}
a[j] = B;
}
h = h / 2;
}
}

Más contenido relacionado

La actualidad más candente

Arboles mate discreta
Arboles mate discretaArboles mate discreta
Arboles mate discretaJunior Soto
 
Estructura de datos lineales y no lineales
Estructura de datos lineales y no linealesEstructura de datos lineales y no lineales
Estructura de datos lineales y no linealeslos4estatidinamicos
 
Pilas como estructura de datos..
Pilas como estructura de datos..Pilas como estructura de datos..
Pilas como estructura de datos..NANO-06
 
Cuadro comparativo algoritmos de ordenamiento
Cuadro comparativo algoritmos de ordenamientoCuadro comparativo algoritmos de ordenamiento
Cuadro comparativo algoritmos de ordenamientoLutzo Guzmán
 
Metodos de ordenacion radix sort
Metodos de ordenacion radix sortMetodos de ordenacion radix sort
Metodos de ordenacion radix sorttephyfree
 
ORDENAMIENTO POR INTERCAMBIO
ORDENAMIENTO POR INTERCAMBIOORDENAMIENTO POR INTERCAMBIO
ORDENAMIENTO POR INTERCAMBIOWilmer Quintero
 
2.1 metodo de intervalo
2.1 metodo de intervalo2.1 metodo de intervalo
2.1 metodo de intervalomorenito9001
 
Administración de procesos y del procesador
Administración de procesos y del procesadorAdministración de procesos y del procesador
Administración de procesos y del procesadorFernando Camacho
 
Método de ordenación por inserción directa
Método de ordenación por inserción directaMétodo de ordenación por inserción directa
Método de ordenación por inserción directatavo_3315_
 
Estructura de Datos -Unidad III: Estructuras Lineales
Estructura de Datos -Unidad III: Estructuras LinealesEstructura de Datos -Unidad III: Estructuras Lineales
Estructura de Datos -Unidad III: Estructuras LinealesJosé Antonio Sandoval Acosta
 
Arreglos vectores pseint
Arreglos vectores pseintArreglos vectores pseint
Arreglos vectores pseintHEIVER CUESTA
 
Unidad 3 estructura lineales
Unidad 3 estructura linealesUnidad 3 estructura lineales
Unidad 3 estructura linealesEnrique2194
 

La actualidad más candente (20)

Arboles mate discreta
Arboles mate discretaArboles mate discreta
Arboles mate discreta
 
Algoritmos de Ordenamiento externo
Algoritmos de Ordenamiento externoAlgoritmos de Ordenamiento externo
Algoritmos de Ordenamiento externo
 
Estructura de datos lineales y no lineales
Estructura de datos lineales y no linealesEstructura de datos lineales y no lineales
Estructura de datos lineales y no lineales
 
Ordenamiento QuickSort
Ordenamiento QuickSortOrdenamiento QuickSort
Ordenamiento QuickSort
 
Programación 3: colas
Programación 3: colasProgramación 3: colas
Programación 3: colas
 
Pilas como estructura de datos..
Pilas como estructura de datos..Pilas como estructura de datos..
Pilas como estructura de datos..
 
Ordenamiento por seleccion
Ordenamiento por seleccionOrdenamiento por seleccion
Ordenamiento por seleccion
 
Algoritmo de ordenamiento: Heap Sort
Algoritmo de ordenamiento: Heap SortAlgoritmo de ordenamiento: Heap Sort
Algoritmo de ordenamiento: Heap Sort
 
Cuadro comparativo algoritmos de ordenamiento
Cuadro comparativo algoritmos de ordenamientoCuadro comparativo algoritmos de ordenamiento
Cuadro comparativo algoritmos de ordenamiento
 
Metodos de ordenacion radix sort
Metodos de ordenacion radix sortMetodos de ordenacion radix sort
Metodos de ordenacion radix sort
 
ORDENAMIENTO POR INTERCAMBIO
ORDENAMIENTO POR INTERCAMBIOORDENAMIENTO POR INTERCAMBIO
ORDENAMIENTO POR INTERCAMBIO
 
Listas,pilas y colas Estructura de Datos
Listas,pilas y colas Estructura de DatosListas,pilas y colas Estructura de Datos
Listas,pilas y colas Estructura de Datos
 
2.1 metodo de intervalo
2.1 metodo de intervalo2.1 metodo de intervalo
2.1 metodo de intervalo
 
Administración de procesos y del procesador
Administración de procesos y del procesadorAdministración de procesos y del procesador
Administración de procesos y del procesador
 
Ordenamiento ppt
Ordenamiento pptOrdenamiento ppt
Ordenamiento ppt
 
Método de ordenación por inserción directa
Método de ordenación por inserción directaMétodo de ordenación por inserción directa
Método de ordenación por inserción directa
 
Estructura de Datos -Unidad III: Estructuras Lineales
Estructura de Datos -Unidad III: Estructuras LinealesEstructura de Datos -Unidad III: Estructuras Lineales
Estructura de Datos -Unidad III: Estructuras Lineales
 
Metodos de ordenamiento
Metodos de ordenamientoMetodos de ordenamiento
Metodos de ordenamiento
 
Arreglos vectores pseint
Arreglos vectores pseintArreglos vectores pseint
Arreglos vectores pseint
 
Unidad 3 estructura lineales
Unidad 3 estructura linealesUnidad 3 estructura lineales
Unidad 3 estructura lineales
 

Similar a Metodos de ordenamiento

metodosdeordenamiento.pptx
metodosdeordenamiento.pptxmetodosdeordenamiento.pptx
metodosdeordenamiento.pptxLeydiCardona3
 
Arrays metodos deordenamiento01
Arrays metodos deordenamiento01Arrays metodos deordenamiento01
Arrays metodos deordenamiento01Alma Lopez
 
Método de Ordenamiento Sort Shell
Método de Ordenamiento Sort ShellMétodo de Ordenamiento Sort Shell
Método de Ordenamiento Sort ShellAntonio Huertas
 
Programacion dinamicaaaa
Programacion dinamicaaaaProgramacion dinamicaaaa
Programacion dinamicaaaaJ_cordero
 
Presentacion de programacion 2
Presentacion de programacion 2Presentacion de programacion 2
Presentacion de programacion 2Cori Marcano
 
Jflambert lyada - ayudantia matematicas discretas
Jflambert   lyada - ayudantia matematicas discretasJflambert   lyada - ayudantia matematicas discretas
Jflambert lyada - ayudantia matematicas discretasFrancisco Lambert Obediente
 
Jflambert lyada - ayudantia ordenamiento y teo maestro
Jflambert   lyada - ayudantia ordenamiento y teo maestroJflambert   lyada - ayudantia ordenamiento y teo maestro
Jflambert lyada - ayudantia ordenamiento y teo maestroFrancisco Lambert Obediente
 
Algoritmos de ordenamiento
Algoritmos de ordenamientoAlgoritmos de ordenamiento
Algoritmos de ordenamientoOrlando Torres
 
Algoritmos de ordenamineto y busqueda
Algoritmos de ordenamineto y busquedaAlgoritmos de ordenamineto y busqueda
Algoritmos de ordenamineto y busquedaCesar Gonzalez
 
expo de metodos de busqueda.pptx
expo de metodos de busqueda.pptxexpo de metodos de busqueda.pptx
expo de metodos de busqueda.pptxPanlido
 
Informe técnico - Unidad 5 Métodos de ordenamiento (Rubí Veronica)
Informe técnico - Unidad 5 Métodos de ordenamiento (Rubí Veronica)Informe técnico - Unidad 5 Métodos de ordenamiento (Rubí Veronica)
Informe técnico - Unidad 5 Métodos de ordenamiento (Rubí Veronica)Rubi Veronica Chimal Cuxin
 
Algoritmos ordenación.pptx
Algoritmos ordenación.pptxAlgoritmos ordenación.pptx
Algoritmos ordenación.pptxFranSilvo
 
metodos-de-ordenamiento.pdf
metodos-de-ordenamiento.pdfmetodos-de-ordenamiento.pdf
metodos-de-ordenamiento.pdfjorgeulises3
 
array
arrayarray
arraymario
 
Metodos de ordenamiento
Metodos de ordenamientoMetodos de ordenamiento
Metodos de ordenamientomemorales_IUE
 

Similar a Metodos de ordenamiento (20)

metodosdeordenamiento.pptx
metodosdeordenamiento.pptxmetodosdeordenamiento.pptx
metodosdeordenamiento.pptx
 
Arrays metodos deordenamiento01
Arrays metodos deordenamiento01Arrays metodos deordenamiento01
Arrays metodos deordenamiento01
 
Método de Ordenamiento Sort Shell
Método de Ordenamiento Sort ShellMétodo de Ordenamiento Sort Shell
Método de Ordenamiento Sort Shell
 
Programacion dinamicaaaa
Programacion dinamicaaaaProgramacion dinamicaaaa
Programacion dinamicaaaa
 
Presentacion de programacion 2
Presentacion de programacion 2Presentacion de programacion 2
Presentacion de programacion 2
 
Ordenamiento
OrdenamientoOrdenamiento
Ordenamiento
 
Jflambert lyada - ayudantia matematicas discretas
Jflambert   lyada - ayudantia matematicas discretasJflambert   lyada - ayudantia matematicas discretas
Jflambert lyada - ayudantia matematicas discretas
 
Jflambert lyada - ayudantia ordenamiento y teo maestro
Jflambert   lyada - ayudantia ordenamiento y teo maestroJflambert   lyada - ayudantia ordenamiento y teo maestro
Jflambert lyada - ayudantia ordenamiento y teo maestro
 
Informe ordenamiento
Informe ordenamientoInforme ordenamiento
Informe ordenamiento
 
Presentacion
PresentacionPresentacion
Presentacion
 
Algoritmos de ordenamiento
Algoritmos de ordenamientoAlgoritmos de ordenamiento
Algoritmos de ordenamiento
 
Programación dinámica presentación
Programación dinámica presentaciónProgramación dinámica presentación
Programación dinámica presentación
 
Algoritmos de ordenamineto y busqueda
Algoritmos de ordenamineto y busquedaAlgoritmos de ordenamineto y busqueda
Algoritmos de ordenamineto y busqueda
 
expo de metodos de busqueda.pptx
expo de metodos de busqueda.pptxexpo de metodos de busqueda.pptx
expo de metodos de busqueda.pptx
 
Ordenamiento
OrdenamientoOrdenamiento
Ordenamiento
 
Informe técnico - Unidad 5 Métodos de ordenamiento (Rubí Veronica)
Informe técnico - Unidad 5 Métodos de ordenamiento (Rubí Veronica)Informe técnico - Unidad 5 Métodos de ordenamiento (Rubí Veronica)
Informe técnico - Unidad 5 Métodos de ordenamiento (Rubí Veronica)
 
Algoritmos ordenación.pptx
Algoritmos ordenación.pptxAlgoritmos ordenación.pptx
Algoritmos ordenación.pptx
 
metodos-de-ordenamiento.pdf
metodos-de-ordenamiento.pdfmetodos-de-ordenamiento.pdf
metodos-de-ordenamiento.pdf
 
array
arrayarray
array
 
Metodos de ordenamiento
Metodos de ordenamientoMetodos de ordenamiento
Metodos de ordenamiento
 

Más de IEO Santo Tomás

Unidad I Metodología de Investigación
Unidad I Metodología de InvestigaciónUnidad I Metodología de Investigación
Unidad I Metodología de InvestigaciónIEO Santo Tomás
 
Modelos de ciclo de vida del software
Modelos de ciclo de vida del softwareModelos de ciclo de vida del software
Modelos de ciclo de vida del softwareIEO Santo Tomás
 
Conceptos básicos sobre algortimia
Conceptos básicos sobre algortimiaConceptos básicos sobre algortimia
Conceptos básicos sobre algortimiaIEO Santo Tomás
 
Metodología para la solución de un problema
Metodología para la solución de un problemaMetodología para la solución de un problema
Metodología para la solución de un problemaIEO Santo Tomás
 
Estructuras de control selectiva
Estructuras de control selectivaEstructuras de control selectiva
Estructuras de control selectivaIEO Santo Tomás
 
Estructuras de control repetitivas
Estructuras de control repetitivasEstructuras de control repetitivas
Estructuras de control repetitivasIEO Santo Tomás
 
Metodología para la solución de problemas con el uso de algoritmos
Metodología para la solución de problemas con el uso de algoritmosMetodología para la solución de problemas con el uso de algoritmos
Metodología para la solución de problemas con el uso de algoritmosIEO Santo Tomás
 
Introducción a Programación Básica
Introducción a Programación BásicaIntroducción a Programación Básica
Introducción a Programación BásicaIEO Santo Tomás
 
Formación del ing. de sistemas para la sociedad
Formación del ing. de sistemas para la sociedadFormación del ing. de sistemas para la sociedad
Formación del ing. de sistemas para la sociedadIEO Santo Tomás
 
Tipos de datos, identificadores, variables y constantes
Tipos de datos, identificadores,  variables y constantesTipos de datos, identificadores,  variables y constantes
Tipos de datos, identificadores, variables y constantesIEO Santo Tomás
 

Más de IEO Santo Tomás (13)

Unidad I Metodología de Investigación
Unidad I Metodología de InvestigaciónUnidad I Metodología de Investigación
Unidad I Metodología de Investigación
 
Modelos de ciclo de vida del software
Modelos de ciclo de vida del softwareModelos de ciclo de vida del software
Modelos de ciclo de vida del software
 
Manual de Uso PseInt
Manual de Uso PseIntManual de Uso PseInt
Manual de Uso PseInt
 
Proyecto TICtures
Proyecto TICturesProyecto TICtures
Proyecto TICtures
 
Conceptos básicos sobre algortimia
Conceptos básicos sobre algortimiaConceptos básicos sobre algortimia
Conceptos básicos sobre algortimia
 
Metodología para la solución de un problema
Metodología para la solución de un problemaMetodología para la solución de un problema
Metodología para la solución de un problema
 
Estructuras de control selectiva
Estructuras de control selectivaEstructuras de control selectiva
Estructuras de control selectiva
 
Estructuras de control repetitivas
Estructuras de control repetitivasEstructuras de control repetitivas
Estructuras de control repetitivas
 
Metodología para la solución de problemas con el uso de algoritmos
Metodología para la solución de problemas con el uso de algoritmosMetodología para la solución de problemas con el uso de algoritmos
Metodología para la solución de problemas con el uso de algoritmos
 
Introducción a Programación Básica
Introducción a Programación BásicaIntroducción a Programación Básica
Introducción a Programación Básica
 
Tipos de algoritmos
Tipos de algoritmosTipos de algoritmos
Tipos de algoritmos
 
Formación del ing. de sistemas para la sociedad
Formación del ing. de sistemas para la sociedadFormación del ing. de sistemas para la sociedad
Formación del ing. de sistemas para la sociedad
 
Tipos de datos, identificadores, variables y constantes
Tipos de datos, identificadores,  variables y constantesTipos de datos, identificadores,  variables y constantes
Tipos de datos, identificadores, variables y constantes
 

Último

Revista estudiantil, trabajo final Materia ingeniería de Proyectos
Revista estudiantil, trabajo final Materia ingeniería de ProyectosRevista estudiantil, trabajo final Materia ingeniería de Proyectos
Revista estudiantil, trabajo final Materia ingeniería de ProyectosJeanCarlosLorenzo1
 
Edificio residencial Becrux en Madrid. Fachada de GRC
Edificio residencial Becrux en Madrid. Fachada de GRCEdificio residencial Becrux en Madrid. Fachada de GRC
Edificio residencial Becrux en Madrid. Fachada de GRCANDECE
 
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023ANDECE
 
Estacionamientos, Existen 3 tipos, y tienen diferentes ángulos de inclinación
Estacionamientos, Existen 3 tipos, y tienen diferentes ángulos de inclinaciónEstacionamientos, Existen 3 tipos, y tienen diferentes ángulos de inclinación
Estacionamientos, Existen 3 tipos, y tienen diferentes ángulos de inclinaciónAlexisHernandez885688
 
Fijaciones de balcones prefabricados de hormigón - RECENSE
Fijaciones de balcones prefabricados de hormigón - RECENSEFijaciones de balcones prefabricados de hormigón - RECENSE
Fijaciones de balcones prefabricados de hormigón - RECENSEANDECE
 
Fe_C_Tratamientos termicos_uap _3_.ppt
Fe_C_Tratamientos termicos_uap   _3_.pptFe_C_Tratamientos termicos_uap   _3_.ppt
Fe_C_Tratamientos termicos_uap _3_.pptVitobailon
 
SEMANA 6 MEDIDAS DE TENDENCIA CENTRAL.pdf
SEMANA  6 MEDIDAS DE TENDENCIA CENTRAL.pdfSEMANA  6 MEDIDAS DE TENDENCIA CENTRAL.pdf
SEMANA 6 MEDIDAS DE TENDENCIA CENTRAL.pdffredyflores58
 
Espontaneidad de las reacciones y procesos espontáneos
Espontaneidad de las reacciones y procesos espontáneosEspontaneidad de las reacciones y procesos espontáneos
Espontaneidad de las reacciones y procesos espontáneosOscarGonzalez231938
 
4.3 Subestaciones eléctricas tipos caracteristicas.pptx
4.3 Subestaciones eléctricas tipos caracteristicas.pptx4.3 Subestaciones eléctricas tipos caracteristicas.pptx
4.3 Subestaciones eléctricas tipos caracteristicas.pptxEfrain Yungan
 
trabajos en altura 2024, sistemas de contencion anticaidas
trabajos en altura 2024, sistemas de contencion anticaidastrabajos en altura 2024, sistemas de contencion anticaidas
trabajos en altura 2024, sistemas de contencion anticaidasNelsonQuispeQuispitu
 
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptxNayeliZarzosa1
 
Topografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la IngenieríasTopografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la IngenieríasSegundo Silva Maguiña
 
Sistema de gestión de turnos para negocios
Sistema de gestión de turnos para negociosSistema de gestión de turnos para negocios
Sistema de gestión de turnos para negociosfranchescamassielmor
 
MEC. FLUIDOS - Análisis Diferencial del Movimiento de un Fluido -GRUPO5 sergi...
MEC. FLUIDOS - Análisis Diferencial del Movimiento de un Fluido -GRUPO5 sergi...MEC. FLUIDOS - Análisis Diferencial del Movimiento de un Fluido -GRUPO5 sergi...
MEC. FLUIDOS - Análisis Diferencial del Movimiento de un Fluido -GRUPO5 sergi...Arquitecto Alejandro Gomez cornejo muñoz
 
ESTRUCTURAS EN LA SUPERVISIÓN Y RESIDENCIA DE OBRAS
ESTRUCTURAS EN LA SUPERVISIÓN Y RESIDENCIA DE OBRASESTRUCTURAS EN LA SUPERVISIÓN Y RESIDENCIA DE OBRAS
ESTRUCTURAS EN LA SUPERVISIÓN Y RESIDENCIA DE OBRASenriquezerly87
 
01 COSTOS UNITARIOS Y PRESUPUESTO DE OBRA-EXPEDIENTE TECNICO DE OBRA.pptx
01 COSTOS UNITARIOS Y PRESUPUESTO DE OBRA-EXPEDIENTE TECNICO DE OBRA.pptx01 COSTOS UNITARIOS Y PRESUPUESTO DE OBRA-EXPEDIENTE TECNICO DE OBRA.pptx
01 COSTOS UNITARIOS Y PRESUPUESTO DE OBRA-EXPEDIENTE TECNICO DE OBRA.pptxluiscisnerosayala23
 
produccion de cerdos. 2024 abril 20..pptx
produccion de cerdos. 2024 abril 20..pptxproduccion de cerdos. 2024 abril 20..pptx
produccion de cerdos. 2024 abril 20..pptxEtse9
 
Sistema de Base de Datos para renta de trajes
Sistema de Base de Datos para renta de trajesSistema de Base de Datos para renta de trajes
Sistema de Base de Datos para renta de trajesjohannyrmnatejeda
 
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIPSEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIPJosLuisFrancoCaldern
 
Descubrimiento de la penicilina en la segunda guerra mundial
Descubrimiento de la penicilina en la segunda guerra mundialDescubrimiento de la penicilina en la segunda guerra mundial
Descubrimiento de la penicilina en la segunda guerra mundialyajhairatapia
 

Último (20)

Revista estudiantil, trabajo final Materia ingeniería de Proyectos
Revista estudiantil, trabajo final Materia ingeniería de ProyectosRevista estudiantil, trabajo final Materia ingeniería de Proyectos
Revista estudiantil, trabajo final Materia ingeniería de Proyectos
 
Edificio residencial Becrux en Madrid. Fachada de GRC
Edificio residencial Becrux en Madrid. Fachada de GRCEdificio residencial Becrux en Madrid. Fachada de GRC
Edificio residencial Becrux en Madrid. Fachada de GRC
 
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
 
Estacionamientos, Existen 3 tipos, y tienen diferentes ángulos de inclinación
Estacionamientos, Existen 3 tipos, y tienen diferentes ángulos de inclinaciónEstacionamientos, Existen 3 tipos, y tienen diferentes ángulos de inclinación
Estacionamientos, Existen 3 tipos, y tienen diferentes ángulos de inclinación
 
Fijaciones de balcones prefabricados de hormigón - RECENSE
Fijaciones de balcones prefabricados de hormigón - RECENSEFijaciones de balcones prefabricados de hormigón - RECENSE
Fijaciones de balcones prefabricados de hormigón - RECENSE
 
Fe_C_Tratamientos termicos_uap _3_.ppt
Fe_C_Tratamientos termicos_uap   _3_.pptFe_C_Tratamientos termicos_uap   _3_.ppt
Fe_C_Tratamientos termicos_uap _3_.ppt
 
SEMANA 6 MEDIDAS DE TENDENCIA CENTRAL.pdf
SEMANA  6 MEDIDAS DE TENDENCIA CENTRAL.pdfSEMANA  6 MEDIDAS DE TENDENCIA CENTRAL.pdf
SEMANA 6 MEDIDAS DE TENDENCIA CENTRAL.pdf
 
Espontaneidad de las reacciones y procesos espontáneos
Espontaneidad de las reacciones y procesos espontáneosEspontaneidad de las reacciones y procesos espontáneos
Espontaneidad de las reacciones y procesos espontáneos
 
4.3 Subestaciones eléctricas tipos caracteristicas.pptx
4.3 Subestaciones eléctricas tipos caracteristicas.pptx4.3 Subestaciones eléctricas tipos caracteristicas.pptx
4.3 Subestaciones eléctricas tipos caracteristicas.pptx
 
trabajos en altura 2024, sistemas de contencion anticaidas
trabajos en altura 2024, sistemas de contencion anticaidastrabajos en altura 2024, sistemas de contencion anticaidas
trabajos en altura 2024, sistemas de contencion anticaidas
 
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx
 
Topografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la IngenieríasTopografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la Ingenierías
 
Sistema de gestión de turnos para negocios
Sistema de gestión de turnos para negociosSistema de gestión de turnos para negocios
Sistema de gestión de turnos para negocios
 
MEC. FLUIDOS - Análisis Diferencial del Movimiento de un Fluido -GRUPO5 sergi...
MEC. FLUIDOS - Análisis Diferencial del Movimiento de un Fluido -GRUPO5 sergi...MEC. FLUIDOS - Análisis Diferencial del Movimiento de un Fluido -GRUPO5 sergi...
MEC. FLUIDOS - Análisis Diferencial del Movimiento de un Fluido -GRUPO5 sergi...
 
ESTRUCTURAS EN LA SUPERVISIÓN Y RESIDENCIA DE OBRAS
ESTRUCTURAS EN LA SUPERVISIÓN Y RESIDENCIA DE OBRASESTRUCTURAS EN LA SUPERVISIÓN Y RESIDENCIA DE OBRAS
ESTRUCTURAS EN LA SUPERVISIÓN Y RESIDENCIA DE OBRAS
 
01 COSTOS UNITARIOS Y PRESUPUESTO DE OBRA-EXPEDIENTE TECNICO DE OBRA.pptx
01 COSTOS UNITARIOS Y PRESUPUESTO DE OBRA-EXPEDIENTE TECNICO DE OBRA.pptx01 COSTOS UNITARIOS Y PRESUPUESTO DE OBRA-EXPEDIENTE TECNICO DE OBRA.pptx
01 COSTOS UNITARIOS Y PRESUPUESTO DE OBRA-EXPEDIENTE TECNICO DE OBRA.pptx
 
produccion de cerdos. 2024 abril 20..pptx
produccion de cerdos. 2024 abril 20..pptxproduccion de cerdos. 2024 abril 20..pptx
produccion de cerdos. 2024 abril 20..pptx
 
Sistema de Base de Datos para renta de trajes
Sistema de Base de Datos para renta de trajesSistema de Base de Datos para renta de trajes
Sistema de Base de Datos para renta de trajes
 
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIPSEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
 
Descubrimiento de la penicilina en la segunda guerra mundial
Descubrimiento de la penicilina en la segunda guerra mundialDescubrimiento de la penicilina en la segunda guerra mundial
Descubrimiento de la penicilina en la segunda guerra mundial
 

Metodos de ordenamiento

  • 1. MÉTODOS DE ORDENAMIENTO ING. CÉSARAUGUSTO GUTIÉRREZ RODRÍGUEZ
  • 2. Introducción Los métodos de ordenamiento nos permiten, organizar la información contenida en vectores o matrices con valores asignados manual o aleatoriamente. Veremos los métodos mas utilizados, analizando la cantidad de comparaciones que suceden, el tiempo que demora y revisando el código, escrito en Java, de cada algoritmo.
  • 3. Método Burbuja El método de la burbuja es uno de los mas simples, es tan fácil como comparar todos los elementos de una lista contra todos, si se cumple que uno es mayor o menor a otro, entonces los intercambia de posición. Se denomina burbuja debido a que los valores más pequeños «burbujean» gradualmente (suben) hacia la cima o parte superior del array de modo similar a como suben las burbujas en el agua, mientras que los valores mayores se hunden en la parte inferior del array.
  • 4. Método Burbuja Simple ▪ La burbuja mas simple de todas es la que compara todos con todos, generando comparaciones extras, por ejemplo, no tiene sentido que se compare con sigo mismo o que se compare con los valores anteriores a el, ya que supuestamente, ya están ordenados. ▪ Por ejemplo, imaginemos que tenemos los siguientes valores: Lo que haría una burbuja simple, seria comenzar recorriendo los valores de izq. A derecha, comenzando por el 5. Lo compara con el 6, con el 1, con el 0 y con el 3, si es mayor o menor (dependiendo si el orden es ascendiente o descendiente) se intercambian de posición. Luego continua con el siguiente, con el 6, y lo compara con todos los elementos de la lista, esperando ver si se cumple o no la misma condición que con el primer elemento. Así, sucesivamente, hasta el ultimo elemento de la lista. 5 6 1 0 3
  • 5. Estructura En JAVA for (i=0; i<n; i++) { for (j=i+1; j<n; j++) { if(V[i]>V[j]) { aux =V[i]; V[i] =V[j]; V[j] = aux; } } }
  • 6. Ejemplo: ▪ Elementos (A = 50, 20, 40, 80, 30), donde se introduce una variable interruptor para detectar si se ha producido intercambio en la pasada. ▪ Pasada 0 50 20 40 80 30 Intercambio 50 y 20 20 50 40 80 30 Intercambio 50 y 40 20 40 50 80 30 50 y 80 ordenados 20 40 50 80 30 Intercambio 80 y 30 20 40 50 30 80 Elemento mayor es 80 interruptor = TRUE
  • 7. ▪ Pasada 1 20 y 40 ordenados 40 y 50 ordenados Se intercambian 50 y 30 • 50 y 80 elementos mayores y ordenados • interruptor = TRUE 20 40 50 30 80 20 40 50 30 80 20 40 50 30 80 20 40 30 50 80
  • 8. ▪ Pasada 2.- Solo se hacen dos comparaciones. Se intercambian 40 y 30 interruptor = TRUE 20 y 40 ordenados20 40 30 50 80 20 30 40 50 80  Pasada 3.- Se hace una única comparación de 20 y 30, y no se produce intercambio: 20 30 40 50 80 20 y 30 ordenados Lista ordenada interruptor = FALSE 20 30 40 50 80
  • 9. Método Selección ▪ Los métodos de ordenación por selección se basan en dos principios básicos: Seleccionar el elemento más pequeño (o más grande) del arreglo. Colocarlo en la posición más baja (o más alta) del arreglo. A diferencia del método de la burbuja, en este método el elemento más pequeño (o más grande) es el que se coloca en la posición final que le corresponde. ▪ Consideremos un array A con 5 valores enteros 51, 21, 39, 80, 36: Pasada 0. Seleccionar 21 Intercambiar 21 y A[0] 51 21 39 80 39 A[0] A[1] A[2] A[3] A[4] Pasada 0 21 51 39 80 36 Pasada 1 Pasada 1. Seleccionar 36 Intercambiar 36 y A[1]
  • 10. 21 36 39 80 51 Pasada 2 Pasada 2. Seleccionar 39 Intercambiar 39 y A[2] 21 36 39 80 51 Pasada 3 Pasada 3. Seleccionar 51 Intercambiar 51 y A[3] 21 36 39 51 80 Lista ordenada
  • 11. Estructura en JAVA ▪ for (i=0; i<n; i++) { imin=i; for (j=i+1; j<n; j++) { if(V[j]<V[imin]) imin=j; } aux =V[i]; V[i] =V[imin]; V[imin] = aux; }
  • 12. Método Inserción ▪ El método de ordenación por inserción es similar al proceso típico de ordenar tarjetas de nombres (cartas de una baraja) por orden alfabético, que consiste en insertar un nombre en su posición correcta dentro de una lista o archivo que ya está ordenado. ▪ Así el proceso en el caso de la lista de enteros A = 50, 20, 40, 80, 30. 50 Se comienza por el 50 Procesar 20 5020 Se inserta 20 en la posición 0 50 se mueve a posición 1 Procesar 40 Procesar 80 Procesar 30 5020 40 Se inserta 40 en la posición 1 Se mueve 50 a posición 2 5020 40 80 El elemento 80 está bien ordenado 5020 40 8030 Se inserta 30 en posición 1 Se desplaza a la derecha la sublista derecha
  • 13. Estructura en JAVA for(i=1; i<n; i++) { temp =V[i]; Izq = 0; Der = i-1; while(Izq <= Der){ Medio = (Izq+Der)/2; if (temp <V[Medio]) Der = Medio - 1; else Izq = Medio + 1; } for (j=i-1; j>=Izq; j--){ V[j+1]=V[j]; } V[Izq] = temp; }
  • 14. Método Shell ▪ El nombre se debe a su inventor, D. L. Shell. Se suele denominar también ordenación por inserción con incrementos decrecientes. Se considera que el método Shell es una mejora de los métodos de inserción directa. ▪ Shell modifica los saltos contiguos resultantes de las comparaciones por saltos de mayor tamaño y con ello se consigue que la ordenación sea más rápida. Generalmente se toma como salto inicial n/2 (siendo n el número de elementos), luego se reduce el salto a la mitad en cada repetición hasta que el salto es de tamaño 1.
  • 15. 74, 14, 21, 44, 38, 97, 11, 78, 65, 88, 30 Se debe empezar con k=n/2 , siendo n el número de elementos de arreglo, y utilizando siempre la división entera.... después iremos variando k haciéndolo más pequeño mediante sucesivas divisiones por 2, hasta llegar a k=1. Pero vamos a ello... En nuestro ejemplo, n=11 (porque hay 11 elementos). Así que k=n/2=11/2=5 Empezamos con k=5. Así pues, vamos a dividir nuestro arreglo original en 5 sub-arreglo, en los cuales, sus elementos estarán separados por 5 lugares del arreglo original (el salto o gap es 5). 1.- Tomamos el primer elemento (el 74) contamos 5 lugares y tomamos también otro elemento (el 97) volvemos a contar 5 y tomamos otro (el 30) y acabamos porque se nos acaba el arreglo. El primer sub-arreglo con k=5 es el formado por 74, 97 y 30. 74 , 14, 21, 44, 38, 97 , 11, 78, 65, 88, 30 Ejemplo
  • 16. Ahora, ordenaremos los elementos del sub-arreglo (rojo) pero sólo entre ellos, utilizando el algoritmo de Inserción directa. 74, 97, 30 30 , 14, 21, 44, 38, 74 , 11, 78, 65, 88, 97 El 30, un elemento relativamente pequeño se ha ido hacia el principio y el 97 hacia el final. Formemos ahora otro sub-arreglo con salto k=5... partiendo del segundo elemento (el 14) y contando 5 (tomamos también el 11) y hasta ahí, porque se acaba el arreglo. 30 , 14 , 21, 44, 38, 74 , 11 , 78, 65, 88, 97 Vamos a ordenarlos el 11 primero y el 14 después. 30 , 11 , 21, 44, 38, 74 , 14 , 78, 65, 88, 97
  • 17. 30 , 11 , 21, 44, 38, 74 , 14 , 78, 65, 88, 97 Ahora a por otro el 21 y el 78 30 , 11 , 21, 44, 38, 74 , 14 , 78, 65, 88, 97 Están en orden entre ellos, así que se quedan como están. Ahora le toca al sub-arreglo formado por el 44 y el 65 30 , 11 , 21, 44, 38, 74 , 14 , 78, 65, 88, 97 Que también están en orden entre ellos. y finalmente el 38 y el 88, que también están en orden. 30 , 11 , 21, 44, 38, 74 , 14 , 78, 65, 88, 97
  • 18. Aún no hemos terminado de ordenarlos. Nuestra k valía 5, así que ahora k←k/2=5/2=2, nuestra nueva k vale 2. Repetimos todo el desarrollo anterior, pero ahora nos saldrán 2 sub- arreglo cuyos elementos están separados por 2 lugares. Tomamos el primer elemento (el 30) contamos 2 lugares y tomamos también otro elemento (el 21) volvemos a contar 2 y tomamos otro (el 38), volvemos a contar y ahora tomamos (el 14), seguimos contado y tomamos (el 65), seguimos contando y tomamos (el 97) y acabamos porque se nos acaba el arreglo. Y posteriormente se forma el según sub-arreglo que empieza con el 11. 30 , 11 , 21, 44, 38, 74 , 14 , 78, 65, 88, 97 Se ordena (primero los rojos), con el método de inserción: 14 , 11 , 21, 44, 30, 74 , 38 , 78, 65, 88, 97 Finalmente ordenamos los negros, pero estos ya están ordenados: 14 , 11 , 21, 44, 30, 74 , 38 , 78, 65, 88, 97
  • 19. ▪ Finalmente, calculamos un nuevo k dividiendo el que tenemos entre 2. k←k/2=2/2=1 Hemos llegado a k=1. Cuando k es 1 sólo podemos obtener 1 sub-arreglo cuyos elementos están separados 1 posición: el propio arreglo original. Dicho de otra manera... cuando k es 1, el algoritmo de Shell se comporta exactamente igual que el de inserción directa sobre todo el arreglo. 14 , 11 , 21, 44, 30, 74 , 38 , 78, 65, 88, 97 ▪ El método de inserción directa se comporta tanto mejor cuanto más cerca está cada elemento de su sitio definitivo. Finalmente, el arreglo queda de ésta manera: 11, 14, 21, 30, 38, 44, 65, 74, 78, 88, 97 ▪ Cada elemento descolocado ha tenido que moverse pocos lugares. Muchos de ellos ni siquiera se han movido.
  • 20. Estructura en JAVA void shellSort(int a[], int h) { int i; while (h > 0) { for (i = h-1; i<n; i++) { int B = a[i]; int j = i; for (j = i; (j >= h) && (a[j - h] > B); j -= h) { a[j] = a[j - h];} a[j] = B; } h = h / 2; } }