![Page 1: METODOS DE ORDENAMIENTO. DESCRIPCIÓN DEL PROBLEMA Se tiene un conjunto desordenado de valores del mismo tipo. Se desea construir un algoritmo para transformar](https://reader033.vdocuments.pub/reader033/viewer/2022061301/54da7b95497959a9648b4ace/html5/thumbnails/1.jpg)
METODOS DE METODOS DE ORDENAMIENTOORDENAMIENTO
![Page 2: METODOS DE ORDENAMIENTO. DESCRIPCIÓN DEL PROBLEMA Se tiene un conjunto desordenado de valores del mismo tipo. Se desea construir un algoritmo para transformar](https://reader033.vdocuments.pub/reader033/viewer/2022061301/54da7b95497959a9648b4ace/html5/thumbnails/2.jpg)
DESCRIPCIÓN DEL PROBLEMADESCRIPCIÓN DEL PROBLEMA
• Se tiene un conjunto desordenado de valores del mismo tipo.
• Se desea construir un algoritmo para transformar dicho conjunto en un conjunto ordenado de la forma más sencilla y que se tare menor tiempo posible, empleando la menor cantidad de recursos.
• Lamentablemente a menor tiempo mayor complejidad de los algoritmos.
![Page 3: METODOS DE ORDENAMIENTO. DESCRIPCIÓN DEL PROBLEMA Se tiene un conjunto desordenado de valores del mismo tipo. Se desea construir un algoritmo para transformar](https://reader033.vdocuments.pub/reader033/viewer/2022061301/54da7b95497959a9648b4ace/html5/thumbnails/3.jpg)
LOS ALGORITMOS DE ORDENAMIENTO LOS ALGORITMOS DE ORDENAMIENTO SE UTILIZAN PARA RESOLVER SE UTILIZAN PARA RESOLVER
AQUELLOS PROBLEMAS DE AQUELLOS PROBLEMAS DE INFORMÁTICA DONDE INTERVIENEN INFORMÁTICA DONDE INTERVIENEN
LAS BÚSQUEDAS.LAS BÚSQUEDAS.
![Page 4: METODOS DE ORDENAMIENTO. DESCRIPCIÓN DEL PROBLEMA Se tiene un conjunto desordenado de valores del mismo tipo. Se desea construir un algoritmo para transformar](https://reader033.vdocuments.pub/reader033/viewer/2022061301/54da7b95497959a9648b4ace/html5/thumbnails/4.jpg)
METODO DE LA BURBUJAMETODO DE LA BURBUJA
![Page 5: METODOS DE ORDENAMIENTO. DESCRIPCIÓN DEL PROBLEMA Se tiene un conjunto desordenado de valores del mismo tipo. Se desea construir un algoritmo para transformar](https://reader033.vdocuments.pub/reader033/viewer/2022061301/54da7b95497959a9648b4ace/html5/thumbnails/5.jpg)
a[0] a[1] a[2] a[3] a[4] a[5]
15 3 12 11 18 2
a[0] > a[1]lo cambio
3 15 12 11 18 2
3 12 15 11 18 2
3 12 11 15 18 2
3 12 11 15 18 2
3 12 11 15 2 18
Al finalizar el mayor de los términos ocupa el lugar Al finalizar el mayor de los términos ocupa el lugar del máximo subíndicedel máximo subíndice
Prim
er pasad
aP
rimer p
asada
a[3] < a[4]no lo cambio
![Page 6: METODOS DE ORDENAMIENTO. DESCRIPCIÓN DEL PROBLEMA Se tiene un conjunto desordenado de valores del mismo tipo. Se desea construir un algoritmo para transformar](https://reader033.vdocuments.pub/reader033/viewer/2022061301/54da7b95497959a9648b4ace/html5/thumbnails/6.jpg)
a[0] a[1] a[2] a[3] a[4] a[5]
3 12 11 15 2 18
Segu
nd
a pasad
aS
egun
da p
asada
El último término está ordenado, ahora iremos hasta el término a[4]
3 12 11 15 2 18
3 11 12 15 2 18
3 11 12 15 2 183 11 12 2 15 18
![Page 7: METODOS DE ORDENAMIENTO. DESCRIPCIÓN DEL PROBLEMA Se tiene un conjunto desordenado de valores del mismo tipo. Se desea construir un algoritmo para transformar](https://reader033.vdocuments.pub/reader033/viewer/2022061301/54da7b95497959a9648b4ace/html5/thumbnails/7.jpg)
Restan
tes Pasad
asR
estantes P
asadas
a[0] a[1] a[2] a[3] a[4] a[5]
3 11 12 2 15 18
3 11 12 2 15 183 11 12 2 15 18
3 11 2 12 15 18
3 11 2 12 15 18
3 11 2 12 15 18
3 2 11 12 15 18
3 2 11 12 15 18
2 3 11 12 15 18
2 3 11 12 15 18
Finalmente el vector quedó
ordenado
![Page 8: METODOS DE ORDENAMIENTO. DESCRIPCIÓN DEL PROBLEMA Se tiene un conjunto desordenado de valores del mismo tipo. Se desea construir un algoritmo para transformar](https://reader033.vdocuments.pub/reader033/viewer/2022061301/54da7b95497959a9648b4ace/html5/thumbnails/8.jpg)
Para j = 4 hasta 0 salto –1
Fin Para
Para n = 0 hasta j
Fin Para
Si a[n] > a[n +1] entonces
hacer x = a[n]
hacer a[n] = a[n+1]
hacer a[n+1] = x
Fin Si
Implementación en seudocódigoImplementación en seudocódigo
![Page 9: METODOS DE ORDENAMIENTO. DESCRIPCIÓN DEL PROBLEMA Se tiene un conjunto desordenado de valores del mismo tipo. Se desea construir un algoritmo para transformar](https://reader033.vdocuments.pub/reader033/viewer/2022061301/54da7b95497959a9648b4ace/html5/thumbnails/9.jpg)
Implementación en CImplementación en C
// METODO DE BURBUJA
for( j =4; x > 0; x-- )
{
for( n = 0; n < j; n++ )
{
if( a[ n ] > a[ n + 1 ] )
{
aux = a[ n ];
a[ n ] = a[ n + 1 ];
a[ n + 1] = aux;
}
}
}
![Page 10: METODOS DE ORDENAMIENTO. DESCRIPCIÓN DEL PROBLEMA Se tiene un conjunto desordenado de valores del mismo tipo. Se desea construir un algoritmo para transformar](https://reader033.vdocuments.pub/reader033/viewer/2022061301/54da7b95497959a9648b4ace/html5/thumbnails/10.jpg)
METODO DE INSERCIÓNMETODO DE INSERCIÓN
![Page 11: METODOS DE ORDENAMIENTO. DESCRIPCIÓN DEL PROBLEMA Se tiene un conjunto desordenado de valores del mismo tipo. Se desea construir un algoritmo para transformar](https://reader033.vdocuments.pub/reader033/viewer/2022061301/54da7b95497959a9648b4ace/html5/thumbnails/11.jpg)
Desarrollo d
el métod
oD
esarrollo del m
étodo
a[0] a[1] a[2] a[3] a[4] a[5]
15 3 12 11 18 2
15 3 12 11 18 2
3 15 12 11 18 2
3 12 15 11 18 2
a[1]<a[0]?Cambiarlo
a[1]>a[0]?Terminar la pasada
3 12 15 11 18 2
3 12 11 15 18 2
3 11 12 15 18 2
3 11 12 15 18 2
a[4]>a[3]?Terminar la pasada
![Page 12: METODOS DE ORDENAMIENTO. DESCRIPCIÓN DEL PROBLEMA Se tiene un conjunto desordenado de valores del mismo tipo. Se desea construir un algoritmo para transformar](https://reader033.vdocuments.pub/reader033/viewer/2022061301/54da7b95497959a9648b4ace/html5/thumbnails/12.jpg)
Desarrollo d
e Métod
o (cont.)
Desarrollo d
e Métod
o (cont.)
3 11 12 15 18 2
3 11 12 15 2 18
3 11 12 2 15 18
3 11 2 12 15 18
3 2 11 12 15 18
2 3 11 12 15 18
El vector está ordenado
![Page 13: METODOS DE ORDENAMIENTO. DESCRIPCIÓN DEL PROBLEMA Se tiene un conjunto desordenado de valores del mismo tipo. Se desea construir un algoritmo para transformar](https://reader033.vdocuments.pub/reader033/viewer/2022061301/54da7b95497959a9648b4ace/html5/thumbnails/13.jpg)
Para j = 1 hasta 5
hacer n = j
Fin Para
Mientras n > 1 y a[n] < a[ n-1]
aux = a[n]
a[n] = a[n-1]
a[n-1] = aux
hacer n = n - 1
Fin Mientras
Implementación del método en pseudocódigoImplementación del método en pseudocódigo
![Page 14: METODOS DE ORDENAMIENTO. DESCRIPCIÓN DEL PROBLEMA Se tiene un conjunto desordenado de valores del mismo tipo. Se desea construir un algoritmo para transformar](https://reader033.vdocuments.pub/reader033/viewer/2022061301/54da7b95497959a9648b4ace/html5/thumbnails/14.jpg)
Implementación del método en CImplementación del método en C
//METODO DE SELECCION
for( j = 1; x < CANT; x++ )
{
n = j;
while( n > 0 && a[ n ] < a[ n - 1 ] )
{
aux = a[ n ];
a[ n ] = a[ n - 1 ];
a[ n - 1 ] = aux;
n = n - 1;
}
}
![Page 15: METODOS DE ORDENAMIENTO. DESCRIPCIÓN DEL PROBLEMA Se tiene un conjunto desordenado de valores del mismo tipo. Se desea construir un algoritmo para transformar](https://reader033.vdocuments.pub/reader033/viewer/2022061301/54da7b95497959a9648b4ace/html5/thumbnails/15.jpg)
METODO DE SELECCIÓNMETODO DE SELECCIÓN
![Page 16: METODOS DE ORDENAMIENTO. DESCRIPCIÓN DEL PROBLEMA Se tiene un conjunto desordenado de valores del mismo tipo. Se desea construir un algoritmo para transformar](https://reader033.vdocuments.pub/reader033/viewer/2022061301/54da7b95497959a9648b4ace/html5/thumbnails/16.jpg)
a[0] a[1] a[2] a[3] a[4] a[5]
15 3 12 11 18 2
Prim
er Pasad
aP
rimer P
asada
V =0 Variable donde Guardamos el primer subíndice (0)
15 a[V] 3 12 11 18 2
Si a[1] < a[V]Hacer V =1
15 3 a[V] 12 11 18 2
a[2] < a[V]?No, Dejar
15 3 a[V] 12 11 18 2
15 3 a[V] 12 11 18 2
15 3 a[V] 12 11 18 2
15 3 12 11 18 2 a[V]
V = 5
Seguidamente cambiamos a[V] con a[0] y el vector a queda
2 3 12 11 18 15
El menor ocupa el lugar que le corresponde, no lo tocamos más
![Page 17: METODOS DE ORDENAMIENTO. DESCRIPCIÓN DEL PROBLEMA Se tiene un conjunto desordenado de valores del mismo tipo. Se desea construir un algoritmo para transformar](https://reader033.vdocuments.pub/reader033/viewer/2022061301/54da7b95497959a9648b4ace/html5/thumbnails/17.jpg)
Segu
nd
a Pasad
aS
egun
da P
asada
a[0] a[1] a[2] a[3] a[4] a[5]
2 3 a[V] 12 11 18 15
Ahora empezamos haciendo V=1
2 3 a[V] 12 11 18 15
2 3 a[V] 12 11 18 15
2 3 a[V] 12 11 18 15
V = 1
Seguidamente cambiamos a[V] con a[1] ( puede hacerse )
2 3 12 11 18 15
Puede verse que en esta pasada el vector quedó inalterado
![Page 18: METODOS DE ORDENAMIENTO. DESCRIPCIÓN DEL PROBLEMA Se tiene un conjunto desordenado de valores del mismo tipo. Se desea construir un algoritmo para transformar](https://reader033.vdocuments.pub/reader033/viewer/2022061301/54da7b95497959a9648b4ace/html5/thumbnails/18.jpg)
a[0] a[1] a[2] a[3] a[4] a[5]
2 3 12 a[V] 11 18 15
Pasad
as Restan
tesP
asadas R
estantes
2 3 12 11 a[V] 18 15
2 3 12 11 a[V] 18 15
V = 3
Cambiar a[V] con a[2]
2 3 11 12 a[V] 18 15
2 3 11 12 a[V] 18 15
Cambiar a[V] con a[3]
2 3 11 12 18 a[V] 15
Cambiar a[V] con a[4]
2 3 11 12 15 18
Finalmente el vector quedó
ordenado
V = 5
V = 3
![Page 19: METODOS DE ORDENAMIENTO. DESCRIPCIÓN DEL PROBLEMA Se tiene un conjunto desordenado de valores del mismo tipo. Se desea construir un algoritmo para transformar](https://reader033.vdocuments.pub/reader033/viewer/2022061301/54da7b95497959a9648b4ace/html5/thumbnails/19.jpg)
Para n = 0 hasta 4
Fin Para
hacer aux = a[V]
hacer a[V] = a[n]
hacer a[n] = aux
Hacer V = n
Para i = n + 1 hasta 5
Fin Para
Implementación del método en pseudocódigoImplementación del método en pseudocódigo
Si a[ i ] < a[ V ] entonces
hacer V = i
Fin Si
![Page 20: METODOS DE ORDENAMIENTO. DESCRIPCIÓN DEL PROBLEMA Se tiene un conjunto desordenado de valores del mismo tipo. Se desea construir un algoritmo para transformar](https://reader033.vdocuments.pub/reader033/viewer/2022061301/54da7b95497959a9648b4ace/html5/thumbnails/20.jpg)
Implementación en CImplementación en C
//MÉTODO DE SELECCIÓN
for( n = 0; n < CANT - 1; n++ )
{
V = n;
for( i = n+ 1; i < CANT; i++ )
{
if( a[i] < a[V] )
V = i;
}
aux = a[V];
a[V] = a[n];
a[n] = aux;
}
![Page 21: METODOS DE ORDENAMIENTO. DESCRIPCIÓN DEL PROBLEMA Se tiene un conjunto desordenado de valores del mismo tipo. Se desea construir un algoritmo para transformar](https://reader033.vdocuments.pub/reader033/viewer/2022061301/54da7b95497959a9648b4ace/html5/thumbnails/21.jpg)
METODO DE SHELLMETODO DE SHELL
![Page 22: METODOS DE ORDENAMIENTO. DESCRIPCIÓN DEL PROBLEMA Se tiene un conjunto desordenado de valores del mismo tipo. Se desea construir un algoritmo para transformar](https://reader033.vdocuments.pub/reader033/viewer/2022061301/54da7b95497959a9648b4ace/html5/thumbnails/22.jpg)
MODO DE FUNCIONAMIENTOMODO DE FUNCIONAMIENTO
a. Seleccionar un intervalo x (generalmente se toma la mitad de términos del vector).
Si el vector tiene 8 términos se toma x = 4.
b. Recorrer el vector comparando n con el término n+x. Si este es menor se intercambian los valores.
Si a[n+x] < a[n] entonces se cambian a[n] con a[n+x]
c. Repetir el punto b) hasta que no se realice ningún cambio.
d. Reducir a la mitad el intervalo x y repetir los pasos a) al c) hasta que el intervalo sea cero.
![Page 23: METODOS DE ORDENAMIENTO. DESCRIPCIÓN DEL PROBLEMA Se tiene un conjunto desordenado de valores del mismo tipo. Se desea construir un algoritmo para transformar](https://reader033.vdocuments.pub/reader033/viewer/2022061301/54da7b95497959a9648b4ace/html5/thumbnails/23.jpg)
Desarrollo del método de ShellDesarrollo del método de Shell
a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7]
18 25 3 11 6 15 13 5
El vector a tiene 8 términos comenzamos haciendo n = 4
18 25 3 11 6 15 13 5
6 25 3 11 18 15 13 5
6 15 3 11 18 25 13 5
6 15 3 11 18 25 13 5
6 15 3 5 18 25 13 11
Fin de la pasada.Hubieron cambios por lo que
debemos repetir el proceso con n = 4
a[4] < a[0]?Cambiarlo y anotar cambio
![Page 24: METODOS DE ORDENAMIENTO. DESCRIPCIÓN DEL PROBLEMA Se tiene un conjunto desordenado de valores del mismo tipo. Se desea construir un algoritmo para transformar](https://reader033.vdocuments.pub/reader033/viewer/2022061301/54da7b95497959a9648b4ace/html5/thumbnails/24.jpg)
Desarrollo del método de Shell (cont.)Desarrollo del método de Shell (cont.)
a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7]
6 15 3 5 18 25 13 11
6 15 3 5 18 25 13 11
6 15 3 5 18 25 13 11
6 15 3 5 18 25 13 11
Esta vuelta no se produjeron cambios
6 15 3 5 18 25 13 11
Como no se produjeron cambios hacemos n = 2
![Page 25: METODOS DE ORDENAMIENTO. DESCRIPCIÓN DEL PROBLEMA Se tiene un conjunto desordenado de valores del mismo tipo. Se desea construir un algoritmo para transformar](https://reader033.vdocuments.pub/reader033/viewer/2022061301/54da7b95497959a9648b4ace/html5/thumbnails/25.jpg)
Desarrollo del método de Shell (cont.)Desarrollo del método de Shell (cont.)
a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7]
6 15 3 5 18 25 13 11
3 15 6 5 18 25 13 11
Aquí se produce un cambio
3 5 6 15 18 25 13 11
3 5 6 15 18 25 13 11
3 5 6 15 18 25 13 11
3 5 6 15 13 25 18 11
3 5 6 15 13 11 18 25
Terminada la pasada.Hubieron cambios
debemos repetir el proceso con n = 2
![Page 26: METODOS DE ORDENAMIENTO. DESCRIPCIÓN DEL PROBLEMA Se tiene un conjunto desordenado de valores del mismo tipo. Se desea construir un algoritmo para transformar](https://reader033.vdocuments.pub/reader033/viewer/2022061301/54da7b95497959a9648b4ace/html5/thumbnails/26.jpg)
a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7]
3 5 6 15 13 11 18 25
Desarrollo del método de Shell (cont.)Desarrollo del método de Shell (cont.)
3 5 6 15 13 11 18 25
3 5 6 15 13 11 18 25
3 5 6 15 13 11 18 25
3 5 6 11 13 15 18 25
3 5 6 11 13 15 18 25
3 5 6 11 13 15 18 25
Aquí se produce un cambio
Terminada la pasada.Hubieron cambios
debemos repetir el proceso con n = 2
![Page 27: METODOS DE ORDENAMIENTO. DESCRIPCIÓN DEL PROBLEMA Se tiene un conjunto desordenado de valores del mismo tipo. Se desea construir un algoritmo para transformar](https://reader033.vdocuments.pub/reader033/viewer/2022061301/54da7b95497959a9648b4ace/html5/thumbnails/27.jpg)
Desarrollo del método de Shell (cont.)Desarrollo del método de Shell (cont.)
a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7]
3 5 6 11 13 15 18 25
3 5 6 11 13 15 18 25
3 5 6 11 13 15 18 25
3 5 6 11 13 15 18 25
3 5 6 11 13 15 18 25
3 5 6 11 13 15 18 25
3 5 6 11 13 15 18 25
No se produjeron cambios.Hacemos n = 1
![Page 28: METODOS DE ORDENAMIENTO. DESCRIPCIÓN DEL PROBLEMA Se tiene un conjunto desordenado de valores del mismo tipo. Se desea construir un algoritmo para transformar](https://reader033.vdocuments.pub/reader033/viewer/2022061301/54da7b95497959a9648b4ace/html5/thumbnails/28.jpg)
a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7]
3 5 6 11 13 15 18 25
Desarrollo del método de Shell (cont.)Desarrollo del método de Shell (cont.)
3 5 6 11 13 15 18 25
3 5 6 11 13 15 18 25
3 5 6 11 13 15 18 25
3 5 6 11 13 15 18 25
3 5 6 11 13 15 18 25
3 5 6 11 13 15 18 25
No se produjeron cambios y además n = 1
Esto significa que el vector quedó ordenado
![Page 29: METODOS DE ORDENAMIENTO. DESCRIPCIÓN DEL PROBLEMA Se tiene un conjunto desordenado de valores del mismo tipo. Se desea construir un algoritmo para transformar](https://reader033.vdocuments.pub/reader033/viewer/2022061301/54da7b95497959a9648b4ace/html5/thumbnails/29.jpg)
Hacer salto = 4
Repetir
hacer salto = salto / 2
Mientras salto > 0
Repetir
Hacer cambio = 0
Mientras cambio = 1
Desarrollo del método en pseudocódigoDesarrollo del método en pseudocódigo
Para n = salto hasta 7
Si a[n] < a[n-salto] entonces
aux = a[n]
a[n] = a[n – salto]
a[n – salto] = aux
hacer cambio = 1
Fin si
Fin para
![Page 30: METODOS DE ORDENAMIENTO. DESCRIPCIÓN DEL PROBLEMA Se tiene un conjunto desordenado de valores del mismo tipo. Se desea construir un algoritmo para transformar](https://reader033.vdocuments.pub/reader033/viewer/2022061301/54da7b95497959a9648b4ace/html5/thumbnails/30.jpg)
Desarrollo d
el métod
o en C
Desarrollo d
el métod
o en C
do
{
do
{
cambio = 0;
for( n = salto; n < CANT ; n++ )
{
if ( a [ n ] < a[ n - salto ] )
{
aux = a[ n ];
a[ n ] = a[ n - salto ];
a[ n - salto ] = aux;
cambio = 1;
}
}
}while ( cambio == 1 );
salto /= 2;
}while ( salto > 0 );
![Page 31: METODOS DE ORDENAMIENTO. DESCRIPCIÓN DEL PROBLEMA Se tiene un conjunto desordenado de valores del mismo tipo. Se desea construir un algoritmo para transformar](https://reader033.vdocuments.pub/reader033/viewer/2022061301/54da7b95497959a9648b4ace/html5/thumbnails/31.jpg)
FIN DE METODOS DE FIN DE METODOS DE ORDENAMIENTOORDENAMIENTO