INSERCIÓN
COMBINACIÓN
Alumna: Jesica Dávila
UNIVERSIDAD TECNICA PARTICULAR DE LOJA
ORDENACIÓN POR INSERCIÓN
// 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--;
}
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++];
}
}