Upload
hector-julio-pena
View
218
Download
0
Embed Size (px)
Citation preview
8/18/2019 Metodos de Ordenamiento_programacion
1/6
METODOS DE ORDENAMIENTO
Debido a que las estructuras de datos son utilizadas para almacenar información,
para poder recuperar esa información de manera eficiente es deseable que aquella esté
ordenada. Existen varios métodos para ordenar las diferentes estructuras de datos
básicas.
En general los métodos de ordenamiento no son utilizados con frecuencia, en
algunos casos sólo una vez. Hay métodos muy simples de implementar que son tiles en
los casos en dónde el n mero de elementos a ordenar no es muy grande !e", menos de
#$$ elementos%. &or otro lado 'ay métodos sofisticados, más dif(ciles de implementar
pero que son más eficientes en cuestión de tiempo de e"ecución.
)os métodos sencillos por lo general requieren de aproximadamente n x n pasos
para ordenar n elementos.
)os métodos simples son* insertion sort !o por inserción directa% selection sort,
bubble sort, y s'ellsort, en dónde el ltimo es una extensón al insertion sort, siendo más
rápido. )os métodos más comple"os son el quic+ sort, el 'eap sort, radix y address
calculation sort. El ordenar un grupo de datos significa mover los datos o sus referencias
para que queden en una secuencia tal que represente un orden, el cual puede ser
numérico, alfabético o incluso alfanumérico, ascendente o descendente.
-e 'a dic'o que el ordenamiento puede efectuarse moviendo los registros con las
claves. El mover un registro completo implica un costo, el cual se incrementa conforme
sea mayor el tama o del registro. Es por ello que es deseable evitar al máximo el
movimiento de los registros. /na alternativa es el crear una tabla de referencias a los
registros y mover las referencias y no los datos. 0 continuación se mostrarán los
métodos de ordenamiento empezando por el más sencillo y avanzando 'acia los mássofisticados
)a eficiencia de los algoritmos se mide por el n mero de comparaciones e intercambios
que tienen que 'acer, es decir, se toma n como el n mero de elementos que tiene el
arreglo a ordenar y se dice que un algoritmo realiza 1!n2% comparaciones cuando
compara n veces los n elementos, n x n 3 n2.
8/18/2019 Metodos de Ordenamiento_programacion
2/6
ORDENAMIENTO DE BURBUJA
)a Ordenación de burbuja !Bubble Sort en inglés% es un sencillo algoritmo de
ordenamiento . 4unciona revisando cada elemento de la lista que va a ser ordenada con
el siguiente, intercambiándolos de posición si están en el orden equivocado. Es
necesario revisar varias veces toda la lista 'asta que no se necesiten más intercambios,
lo cual significa que la lista está ordenada. Este algoritmo obtiene su nombre de la
forma con la que suben por la lista los elementos durante los intercambios, como si
fueran peque as 5burbu"as5. 6ambién es conocido como el método del intercambio
directo . Dado que solo usa comparaciones para operar elementos, se lo considera un
algoritmo de comparación, siendo el más sencillo de implementar.
burbu"a
7include8stdio.'9
7include8conio.'9
int a:;?@
int i,",aux,n3;@
void main!%=
clrscr!%@
for!i3$@i83n@iAA%=
for!"3$@"8n >@"AA%=
if!a:"
8/18/2019 Metodos de Ordenamiento_programacion
3/6
ORDENAMIENTO SHE
El ordenamiento S!ell !S!ell "ort en inglés% es un algoritmo de ordenamiento . El método se
denomina S!ell en 'onor de su inventor Donald -'ell . -u implementación original,
requiere 1 !n2% comparaciones e intercambios en el peor caso. /n cambio menor presentado en
el libro de C. &ratt produce una implementación con un rendimiento de 1 !n log 2 n% en el peor
caso. Esto es me"or que las 1 !n2% comparaciones requeridas por algoritmos simples pero peor
que el óptimo 1 !n log n%. 0unque es fácil desarrollar un sentido intuitivo de cómo funciona este
algoritmo, es muy dif(cil analizar su tiempo de e"ecución. El algoritmo -'ell sort me"ora el
ordenamiento por inserción comparando elementos separados por un espacio de varias
posiciones. Esto permite que un elemento 'aga 5pasos más grandes5 'acia su posición esperada.
)os pasos m ltiples sobre los datos se 'acen con tama os de espacio cada vez más peque os. El
ltimo paso del -'ell sort es un simple ordenamiento por inserción, pero para entonces, ya está
garantizado que los datos del vector están casi ordenados.
shell
#include
#include
int a[5];
int n=5;
void main()
{
int inter=(n/ )!i="! ="!$="!au%;
clrscr();
&or (i="; i"){
&or(i=inter;i=") {
$= 'inter;i&(a[ ]
8/18/2019 Metodos de Ordenamiento_programacion
4/6
::;
}
else{
au%=a[ ];
a[ ]=a[$];
a[$]=au%;
= :inter;
}
}
}
inter=inter/ ;
}
&or(i=";i
8/18/2019 Metodos de Ordenamiento_programacion
5/6
int i! !au%;void main(){clrscr();
&or(i= ;i" 88 au%*
#ara i3> !a"ta n > minimo 3 i@ #ara "3iA> !a"ta n Si lista:"< 8 lista :minimo< entonce" minimo 3 " &' ()* '& +in "i +in %ara
8/18/2019 Metodos de Ordenamiento_programacion
6/6
Fntercambiar !lista:i