Documentos de Académico
Documentos de Profesional
Documentos de Cultura
ORDENACIN
La ordenacin o clasificacin de datos (sort, en ingls) es una operacin
consistente en disponer un conjunto estructura de datos en algn determinado
orden con respecto a uno de los campos de elementos del conjunto. Por ejemplo,
cada elemento del conjunto de datos de una gua telefnica tiene un campo
nombre, un campo direccin y un campo nmero de telfono; la gua telefnica
est dispuesta en orden alfabtico de nombres; los elementos numricos se
pueden ordenar en orden creciente o decreciente de acuerdo al valor numrico del
elemento. En terminologa de ordenacin, el elemento por el cual est ordenado
un conjunto de datos (o se est buscando) se denomina clave.
Una coleccin de datos (estructura) puede ser almacenada en un archivo, un
array (vector o tabla), un array de registros, una lista enlazada o un rbol. Cuando
los datos estn almacenados en un array, una lista enlazada o un rbol, se
denomina ordenacin interna. Si los datos estn almacenados en un archivo, el
proceso de ordenacin se llama ordenacin externa.
Una lista se dice que est ordenada por la clave k si la lista est en orden
ascendente o descendente con respecto a esta clave. La lista se dice que est en
orden ascendente si:
i < j implica que k[i] <= k[j]
y se dice que est en orden descendente si:
i > j implica que k[i] >= k[j]
para todos los elementos de la lista. Por ejemplo, para una gua telefnica, la lista
est clasificada en orden ascendente por el campo clave k, donde k[i] es el
nombre del abonado (apellidos, nombre).
4
14
21
32
45
orden ascendente
4
5
3
2
21
14
orden descendente
Garca
Zacaras
Lpez
Martnez
Rodrguez
Rodrguez
Martnez
Lpez
Zacaras
Garca
orden ascendente
orden descendente
Los mtodos (algoritmos) de ordenacin son numerosos, por ello se debe prestar
especial atencin en su eleccin. Cmo se sabe cul es el mejor algoritmo? La
eficiencia es el factor que mide la calidad y rendimiento de un algoritmo. En el
caso de la operacin de ordenacin, dos criterios se suelen seguir a la hora de
decidir qu algoritmo de entre los que resuelven la ordenacin es el ms
eficiente:
1) tiempo menor de ejecucin en computadora;
indirectos
Ordenacin de listas
Ordenacin de archivos.
Ordenacin de listas
Ordenacin de archivos.
Pasada 2
La sub-lista a considerar ahora es 8, 6 ya que 2, 4 est ordenada. Una
comparacin nica se produce entre los dos elementos de la sub-lista.
{
cout<<v[i]<<"\t";
}
/* ordenacin ascendente de la lista */
/* se realizan n-1 pasadas */
/* a[o], ... , a[n-2] */
for (i = 0 ; i <= n-2 ; i++)
{
/* coloca mnimo de a[i+1]...a[n-1] en a[i] */
for (j = i+1 ; j <= n-1 ; j++)
if (v[i] > v[j])
{
int aux;
aux = v[i];
v[i] = v[j];
v[j]= aux ;
}
}
cout<<"\nLista ordenada de "<<n<<" elementos"<<endl;
cout<<"---------------------------------"<<endl;
for (i = 0 ; i < n ; i++)
{
cout<<v[i]<<"\t";
}
return 0;
}
ORDENACIN POR SELECCIN
Considrese el algoritmo para ordenar un array A de enteros en orden
ascendente, es decir, del nmero ms pequeo al mayor. Es decir, si el array A
tiene n elementos, se trata de ordenar los valores del array de modo que el dato
contenido en A[0] sea el valor ms pequeo, el valor almacenado en A[1] el
siguiente ms pequeo, y as hasta A[n-1], que ha de contener el elemento de
mayor valor. El algoritmo se apoya en sucesivas pasadas que intercambian el
elemento ms pequeo sucesivamente con el primer elemento de la lista, A[0]
en la primera pasada. En sntesis, se busca el elemento ms pequeo de la
lista y se intercambia con A[0], primer elemento de la lista.
A[0] A[1] A[2].... A[n-1]
Despus de terminar esta primera pasada, el frente de la lista est ordenado y
el resto de la lista A[1], A[2]...A[n-1] permanece desordenado. La siguiente
pasada busca en esta lista desordenada y selecciona el elemento ms