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.
Los métodos sencillos por lo general requieren de
aproximadamente n x n pasos para ordenar n elementos.
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.
Ordenamiento
Burbuja:
Empezamos con los datos aleatoriamente
ordenados, el primer dato lo tomamos como la parte ordenada, el resto será la
parte desordenada.
Tomamos el primer numero de la parte desordenada, en este
caso siempre es el segundo, la almacenamos de una variable temporal.
Se compara con el primer numero de la parte ordenada.
Si el numero es
menor que se recorre el arreglo y se inserta el numero, si no fuera asi se pone
el numero al final de la parte ordenada.
VENTAJAS Y APLICACIONES:
·
Facil
de implementar.
·
Eficiente
en pocos datos.
·
Eficiente
en datos que ya tienen cierta tendencia al orden.
·
Es
el método mas sencillo de programar, no requiere espacio extra.
·
El método
de ordenación por inserción directa es el que generalmente utilizan los
jugadores de cartas cuando éstas, de ahí que también se conozca con el nombre
de método de la baraja.
IMPLEMENTACION:
#define Nelementos 4
....
int i,j; //Variables contadoras del ciclo.
int lista[Nelementos]={6,9,3,1}; //Declaracion e inicializacion de un arreglo de 4 elementos.
int temp=0; //Variable temporal.
for (i=1;i<Nelementos;i++)
{
for (j=0; j <= Nelementos-i ;j++) // for(j=0; j < Nelementos-i; j++) es menor y no menor igual
{
if (lista[j] > lista[j+1])//Condicion mayor-menor
{
temp=lista[j];
lista[j]=lista[j+1];
lista[j+1]=temp;
}
}
}
....
int i,j; //Variables contadoras del ciclo.
int lista[Nelementos]={6,9,3,1}; //Declaracion e inicializacion de un arreglo de 4 elementos.
int temp=0; //Variable temporal.
for (i=1;i<Nelementos;i++)
{
for (j=0; j <= Nelementos-i ;j++) // for(j=0; j < Nelementos-i; j++) es menor y no menor igual
{
if (lista[j] > lista[j+1])//Condicion mayor-menor
{
temp=lista[j];
lista[j]=lista[j+1];
lista[j+1]=temp;
}
}
}
Bibliografia:
http://iutprogramacion.blogspot.com.ar/2013/02/metodos-de-ordenamiento.html
Hector Enrique
Guerrero C.(2009). La culpa es del Programmer.



