Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
METODO DE ORDENAMIENTO
INTRODUCCIN
OBJETIVOS
Despus del estudio de este trabajo usted podr:
Conocer los algoritmos basados en el intercambio de elementos.
Conocer el algoritmo de ordenacin por insercin.
Conocer el algoritmo de seleccin.
Distinguir entre los algoritmos de ordenacin basados en el intercambio y en la
insercin.
Deducir la eficiencia de los mtodos bsicos de ordenacin.
Conocer los mtodos ms eficientes de ordenacin.
Aplicar mtodos mas eficientes de ordenacin de arrays (arreglos).
Diferenciar entre bsqueda secuencial y bsqueda binaria.
ORDENAMIENTO
1. Mtodos de Ordenamiento
a) Tipos de Ordenamiento
La ordenacin o clasificacin de datos consiste en la disposicin de los mismos de acuerdo con algn
valor o caracterstica. Por ejemplo, cada elemento de una agenda telefnica tiene un campo nombre,
un campo direccin y un campo nmero telefnico. Por lo regular los datos en la agenda se
encuentran organizados en un orden de la A la Z. De la misma forma un lista vector de datos se dice
que esta ordenado de manera ascendente, si X [ i ] <= X [ i +1] y, por otro lado, se dice que esta
ordenado de manera descendente s X [ i ] >= X [ i +1].
El proceso de ordenacin es uno de los mecanismos ms interesantes cuando llega el momento de
mostrar que existen mltiples soluciones para un mismo problema, y que cada solucin algortmica
tiene sus propias ventajas y desventajas.
Una forma de medir la eficiencia de un algoritmo de esta clase, es verificar el nmero de
comparaciones entre valores clave, adems del nmero de movimientos que se tengan que realizar
entre elementos (intercambios) de la lista.
Los mtodos de ordenamiento que trabajan con estructuras de datos residentes en memoria principal
se denominan Ordenamientos Internos, mientras que las implementaciones que utilizan estructuras de
datos residentes en archivos se conocen como Ordenamientos externos.
b) Ordenamiento Interno
Los mtodos de ordenamiento interno trabajan en memoria principal y sus implementaciones son muy
variadas, de manera que la eleccin del algoritmo adecuado debe realizarse con criterios de eficiencia
(tiempo y ejecucin) y en funcin de la memoria disponible. Dividiremos los mtodos en dos grandes
grupos:
Directos (burbuja, seleccin e insercin).
Logartmicos (Shell sort, Merge sort, Heap sort, Quick sort, Radix).
En el caso de listas pequeas, los mtodos directos se desempean de manera relativamente
eficientes, ya que la codificacin del algoritmo correspondiente no es compleja. Su uso es muy
frecuente. Sin embargo, en arreglos grandes las ordenaciones directas resultan ineficientes y se
necesitara un mtodo logartmico para su solucin.
I.
BURBUJA
Es uno de los mtodos relativamente ms sencillo e intuitivo, pero tambin resulta ser muy ineficiente. Se
basa en la ordenacin por cambio, y recibe su nombre de la semejanza con las burbujas de un depsito
de agua donde cada burbuja busca su propio nivel. Los pasos a efectuar en el caso de una ordenacin
ascendente (en el caso de la ordenacin descenderte solo habra que cambiar el signo de comparacin)
son:
Ejemplos pseudocodigo
INICIO
ENTERO X, Z, matrix (N)
X =0
MIENTRAS (X<N){
Z=N
MIENTRAS (X>=N){
SI (matrix [Z] < matrix [Z-1]){
INTERCAMBIO (matrix [Z] < matrix [Z-1])}
Z=Z-1}
X=X+1}
FIN
Ejemplo java
2 public static void burbuja(int[]matrix){
3
int temp;
4
for(int i=1;i < matrix.length;i++){
5
for (int j=0 ; j < matrix.length- 1; j++){
6
if (matrix[j] > matrix[j+1]){
7
temp = matrix[j];
8
matrix[j] = matrix[j+1];
9
matrix[j+1] = temp;
10
}
11
}
12
}
13
}
II.
SELECCIN
La idea bsica es encontrar el elemento ms pequeo (grande), en orden ascendente de la lista, e
intercambiarlo con el elemento que ocupa la primera posicin en la lista, a continuacin se busca el siguiente
elemento ms pequeo y se transfiere a la segunda posicin. Se repite el proceso hasta que el ltimo
elemento ha sido transferido a su posicin correcta.
El algoritmo de ordenacin depende a su vez del algoritmo necesario para localizar el componente mayor
(menor) de un array. Es un proceso muy similar al mtodo de la burbuja pero haciendo ms eficiente la
bsqueda y evitando intercambios innecesarios. Consideremos el mismo arreglo del ejemplo anterior { 7, 2, 8,
3, 5, 1 }. El proceso sera de la siguiente manera:
1ra iteracin, i permanece fijo en la casilla 0 y j se incrementa hasta llegar al ltimo elemento:
{7, 2, 8, 3, 5, 1} k = 0, j = 1, cambio k = j ya que en j esta el menor
{7, 2, 8, 3, 5, 1} k = 1, j = 2, no genera cambio
{7, 2, 8, 3, 5, 1} k = 1, j = 3, no genera cambio
Ejemplos pseudocodigo
INICIO
ENTERO X, Z, AUX, ARREGLO(N)
LOGICO B
PARA(X=1, HASTA N, X=X+1){
AUX = ARRAY[X]
Z=X-1
B= FALSO
MIENTRAS (B= FALSO Y Z >=0){
SI (AUX < ARREGLO[Z]){
ARREGLO[Z+1] = ARREGLO[Z]
Z=Z-1}
SI NO{
B= VERDAD }}
ARREGLO[Z+1] =AUX }
FIN
Ejemplo java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
REFERENCIAS BIBLIOGRFICAS.
http://jorgesanchez.net/programacion/index.html
http://blog.zerial.org/ficheros/Informe_Ordenamiento.pdf
Bubble Sort: An archaeological algorithm analysis