Metodos de Ordenamiento Parte 1

8
Métodos de Ordenamiento Luis F. Aguas B.

Transcript of Metodos de Ordenamiento Parte 1

Page 1: Metodos de Ordenamiento Parte 1

Métodos de Ordenamiento

Luis F. Aguas B.

Page 2: Metodos de Ordenamiento Parte 1

 Tipos de ordenamientos:  

Tipos de ordenamientos:

Los 2 tipos de ordenamientos que se pueden realizar son: los internos y los externos.

Los internos: Son aquellos en los que los valores a ordenar están en memoria principal, por lo que se asume que el tiempo que se requiere para acceder cualquier elemento sea el mismo (a[1], a[500], etc).

Los externos: Son aquellos en los que los valores a ordenar están en memoria secundaria (disco duro, memoria USB, unidades de respaldo, etc), por lo que se asume que el tiempo que se requiere para acceder a cualquier elemento depende de la última posición accesada (posición 1, posición 500, etc).

Page 3: Metodos de Ordenamiento Parte 1

Métodos de Ordenamiento Internos

Page 4: Metodos de Ordenamiento Parte 1

Inserción directa

• Este método consiste en buscar el lugar adecuado para cada registro recorriendo los registros anteriores para dejar un lugar vacío para el nuevo elemento. El proceso de acomodo de cada elemento se repite hasta llegar al último elemento, los elementos previos al elemento a acomodar se encuentran en orden.

• Este es el método usado por los jugadores de cartas para acomodar su juego.

Page 5: Metodos de Ordenamiento Parte 1

Ordenamiento por inserción directa

Variables– K arreglo de datos a ordenar– V variable auxiliar– i, j índices para el arreglo– N número de elementos

InserciónDirectaInicio Para i=2 hasta N incremento 1 v = K(i) //elemento a acomodar j = i Mientras (j > 1) y (K(j-1) > v) K(j) = K(j-1) //mueve elementos j = j-1 K(j) = v // inserta el elemento actualFin

3 8 2 1 4

1 2 3 4 5 6

2K

3 8

2 3 8

1 2 3 8

1 2 3 4 8

1 2 2 3 4 8

Page 6: Metodos de Ordenamiento Parte 1

Insercion binaria

public static void Inserción_Binaria(int[]Clar)

{

int i, j, aux1,

for(i=1; i<Clar.Length; i++)

{

aux1=Clar[i];

cont++;

j=i;

while((j>0)&&(aux1<Clar[j-1]))

{

Clar[j]=Clar[j-1];

cont++;

j--;

}

Clar[j]=aux1;

cont++;

}

Page 7: Metodos de Ordenamiento Parte 1

Este método consiste en seleccionar el elemento más pequeño de nuestra lista para colocarlo al inicio y así excluirlo de la lista.

Para ahorrar espacio, siempre que vayamos a colocar un elemento en su posición correcta lo intercambiaremos por aquel que la esté ocupando en ese momento.

Selección directa

Page 8: Metodos de Ordenamiento Parte 1

El algoritmo de selección directa es el siguiente:

i = 0mientras (i< N-1){        min = i        j = i + 1        mientras (j < N)                {

si (arreglo[j] < arreglo[min])  min = j 

              j = j + 1  } intercambia(arreglo[min],arreglo[i])  i = i +1 }

Selección directa