0% encontró este documento útil (0 votos)
32 vistas5 páginas

Ordenamiento por Inserción en Java

Cargado por

pokxmon12
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
32 vistas5 páginas

Ordenamiento por Inserción en Java

Cargado por

pokxmon12
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

Ordenamiento por inserción directa

---------------------------------------------------------------

El método de ordenación por inserción directa consiste en recorrer todo


el array comenzando desde el segundo elemento hasta el final. Para
cada elemento, se trata de colocarlo en el lugar correcto entre todos los
elementos anteriores a él o sea entre los elementos a su izquierda en el
array.

Dada una posición actual p, el algoritmo se basa en que los elementos


A[0], A[1], ..., A[p-1] ya están ordenados.
public static void insercionDirecta(int A[]){

int p, j;

int aux;

for (p = 1; p < A.length; p++){ // desde el segundo elemento hasta

aux = A[p]; // el final, guardamos el elemento y

j = p - 1; // empezamos a comprobar con el anterior

while ((j >= 0) && (aux < A[j])){ // mientras queden posiciones
y el

// valor de aux sea menor que los

A[j + 1] = A[j]; // de la izquierda, se desplaza a

j--; // la derecha

A[j + 1] = aux; // colocamos aux en su sitio

Programación Java: Ordenamiento por Inserción directa


Ordenamiento por inserción binaria

Es una variante del método de inserción directa, en la que se sustituye


la búsqueda secuencial por una búsqueda binaria (que se puede aplicar
dado que la zona de búsqueda contiene elementos ordenados).
Para cada elemento ai comprendido entre las posiciones 2 y N:

1. Se aplica una búsqueda binaria entre las posiciones [1, I-1], para
determinar la posición que debería ocupar el elemento a ordenar,
respecto a los de dicho intervalo.

2. Todos los elementos del intervalo anterior que sean mayores que
el que se pretende colocar, se desplazarán una posición a la
derecha.

3. Se coloca el valor en su nueva posición, ya en orden.


PSEUDOCÓDIGO

MÓDULO ordenacion_insercion_binaria

DATOS
PARÁMETROS
Transforma V() de tipo T
Recibe N entera
VARIABLES
I, J enteras
AUX de tipo T
INICIO
Para I desde 2 hasta N
AUX ← V(I)
IZQ ← 1
DER ← I-1
Mientras ( IZQ ≤ DER ) hacer
CEN ← (IZQ+DER)\ 2 ** división entera
Si ( V(CEN) ≤ AUX ) entonces
IZQ ← CEN+1
sino
DER ← CEN-1
fin-si
fin-mientras
J ← I
Mientras (J > IZQ) hacer
V(J) ← V(J-1)
J ← J-1
fin-mientras
V(IZQ) ← AUX
fin-para
FIN
CÓDIGO C

/*Ordena un vector (de menor a mayor) por el método de inserción


binaria*/
ordInsBinaria(int *v, int n)
{
int i, j, aux, izq, der, cen;

for(i=1;i<n;i++)
{
aux=v[i];
izq=0;
der=i-1;
while(izq<=der)
{
cen=(izq+der)/2;

if(v[cen]>aux)
{
der=cen-1;
}
else
{
izq=cen+1;
}
}

j=i;

while(j>izq)
{
v[j]=v[j-1];
j=j-1;
}

v[izq]=aux;
}
}

Algoritmo de Ordenación por Inserción Binaria

También podría gustarte