2. 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).
4. 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.
5. Ordenamiento por inserción directa
Variables 1 2 3 4 5 6
– K arreglo de datos a ordenar
– V variable auxiliar K 3 8 2 1 4 2
– i, j índices para el arreglo
– N número de elementos
3 8
InserciónDirecta
Inicio 2 3 8
Para i=2 hasta N incremento 1
v = K(i) //elemento a acomodar
j=i 1 2 3 8
Mientras (j > 1) y (K(j-1) > v)
K(j) = K(j-1) //mueve elementos
1 2 3 4 8
j = j-1
K(j) = v // inserta el elemento actual
Fin 1 2 2 3 4 8
6. Insercion binaria
public static void while((j>0)&&(aux1<Cla
Inserción_Binaria(int[]Clar) r[j-1]))
{
{
int i, j, aux1,
Clar[j]=Clar[j-1];
for(i=1; i<Clar.Length; i++)
{ cont++;
aux1=Clar[i]; j--;
cont++; }
j=i; Clar[j]=aux1;
cont++;
}
7. Selección directa
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.
8. Selección directa
El algoritmo de selección directa es el siguiente:
i=0
mientras (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
}