ORDENACIÓN POR :

INSERCIÓN

COMBINACIÓN

Alumna: Jesica Dávila

 

UNIVERSIDAD TECNICA PARTICULAR DE LOJA

ORDENACIÓN POR INSERCIÓN

  • El algoritmo de ordenación por inserción toma cada elemento a partir del segundo y recorre el vector en sentido inverso ubicando el elemento en su posición correcta haciendo los intercambios necesarios. Cuando termina de ubicar un elemento en su posición correcta, continúa con el siguiente elemento hasta hacer este proceso con todos los elementos del arreglo.

// Algoritmo de ordenacion por insercion

    public static void ordenacionInsercion(int[] v) {

        final int N = v.length;

        for(int i=1; i<N; i++) {

            int j=i;

            while(j>0 && v[j]<v[j-1] ){

                int tmp = v[j];

                v[j]    = v[j-1];

                v[j-1]  = tmp;

                j--;

            }

     

ORDENACIÓN POR COMBINACIÓN:

Este es basado en la técnica Divide y Vencerás, ordena recursivamente un conjunto de elementos dividiéndolo en dos, ordenando cada una de estas partes en forma independiente y combinando los dos resultados.
 

    public static void ordenacionCombinacion(int[] v) {

        final int N = v.length;

        if(N<=1) return;

        int mitad=N/2;

        int[] izq = Arrays.copyOfRange(v, 0, mitad);

        int[] der = Arrays.copyOfRange(v, mitad, N);

        ordenacionCombinacion(izq);

        ordenacionCombinacion(der);

        combinar(v, izq, der);

    }

 

public static void combinar(int[] resp, int[] izq, int[] der) {

        int i = 0;

        int j = 0;

        for(int k=0; k<resp.length;k++) {

            if(i>=izq.length) { resp[k]=der[j++]; continue; }

            if(j>=der.length) { resp[k]=izq[i++]; continue; }

            resp[k]=(izq[i]<der[j])?izq[i++]:der[j++];

      }

}

Programación

By jesidavila

Programación

  • 159