Insertion Sort
Dentro de los
algoritmos de ordenamiento ESTABLES tenemos el método de inserción -
insertion sort (ordenamiento por inserción)
Este método consiste en ordenar la estructura desplazando los elementos mayores hacia la parte derecha y los inferiores hacia la parte izquierda.
Ventajas y desventajas
fácil implementación y requerimientos mínimos de memoria
Desventajas:
Realiza muchas comparaciones a la vez
Funcionamiento
"este algoritmo compara cada elemento de la lista después del primero (primera posición), con los elementos anteriores mirando si cumple la condición de ser menor ,desplazando una posición a la derecha a todos os elementos anteriores que cumplan la condición y luego se coloca el elemento en la posición del anterior desplazado"
esta imagen gif muestra el funcionamiento del método ( isertion sort )
Ejemplo: ordenando de menor a mayor (ascendentemente)
la siguiente lista de números:7, 3, 10, 1, 9
La lista tiene 5 elementos con lo cual tendremos que recorrer
la lista 4 veces. Ya que la comparación se hará desde el segundo
elemento de la lista, es decir recorremos la lista después del
primer elemento hasta el último.
código en java
public class Ordenador_De_Numeros {
public void ordenarInsercion(int[] array) {
int aux; // para hacer los cambios de posicion
int cont1;
int cont2;
for (cont1 = 1; cont1 < array.length; cont1++) { // Movimiento de izquierda a derecha
aux = array[cont1]; //Toma el valor de la posición que va a ser comparada
for (cont2 = cont1 - 1; cont2 >= 0 && array[cont2] > aux; cont2--) { // conteo de // derecha a izquierda
array[cont2 + 1] = array[cont2]; // realiza el movimiento de cambiar la posicion del numero //ordenadamente
array[cont2] = aux;
}
}
}
}
----------------------------------------------------------------------------------------------------------------------
// llamada de objetos
package ordenamientoporinsercion;
public class Menu {
public static void main(String[] args) {
int[] arreglo = {5, 11, 15, 12, 4, 2, 23, 3, 4, 9, 1, 45, 50}; // arreglo a ordenar de menor //a mayor
Ordenador_De_Numeros obj = new Ordenador_De_Numeros();
obj.ordenarInsercion(arreglo);
for (int i = 0; i < arreglo.length; i++) {
System.out.println(arreglo[i] + "\t");
System.out.println("");
}
}
}
para descargar el código presiona clic sobre el siguiente enlace
--------- Descargar Codigo ---------





