Ir al contenido principal

metodos de ordenamiento

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
    }
} asi seria un ejemplo 






El método de inserción directa es el que generalmente utilizan los jugadores de cartas cuando ordenan éstas, de ahí que también se conozca con el nombre de método de la baraja.

La idea central de este algoritmo consiste en insertar un elemento del arreglo en la parte izquierda del mismo, que ya se encuentra ordenada. Este proceso se repite desde el segundo hasta el n-esimo elemento
Ejemplo:
Se desean ordenarse las siguientes clave del arreglo A: 15, 67, 08, 16, 44, 27, 12, 35
Primera pasadaA[2] < A[1] 67 < 15 No hay intercambio
A: 15, 67, 08, 16, 44, 27, 12, 35
Segunda pasadaA[3] < A[2] 08 < 67 Si hay intercambio
A[2] < A[1] 08 < 15 Si hay
A: 15, 08, 67, 16, 44, 27, 12, 35
Tercera pasada
A[4] < A[3] 08 < 15 Si hay intercambio
A[3] < A[2] 08 < 15 Si hay intercambio
A= 08, 15, 67, 16, 44, 27, 12, 35
Hasta la septima pasada el arreglo queda ordenado: 08, 12, 15, 16, 27, 35, 44, 67

ANÁLISIS DE EFICIENCIA DEL MÉTODO DE INSERCIÓN DIRECTA 

El número máximo de comparaciones y movimientos se produce cuando los elementos del arreglo están en orden inverso Cmax = 1+2+3+............+(n-1) = n*(n-1)/2 Cmax= (n2-n)/2 
El número de comparaciones promedio que es cuando los elementos aparecen en el arreglo en forma aleatoria, puede ser calculado mediante la suma de las comparaciones mínimas y máximas divididas entre 2.

Cmed = [(n-1) + (n2-n)/2]/2

Al hacer la operación, nos queda:
Cmed = (n2+n-2)/4
 R

especto al número de movimientos Knuth obtiene los siguiente:
Mmin = 0 Mmed = (n2-n)/4 Mmax = (n2-n)/2 


El tiempo necesario para ejecutar el algoritmo es proporcionar a n2, O(n2). A pesar de ser un método ineficiente y recomendable solo cuando n es pequeña, el método de inserción directa se comporta mejor que el método de intercambio directo analizado anteriormente.



BIBLIOGRAFIA: http://www.angelfire.com/wy2/est_info/insercion.html
NOTA: se encuentra un ejercicio en este link


Mas informacion
















Comentarios

Entradas populares de este blog

Diagramas UML - Casos de Uso

               Diagrama de usos de casos Elementos Actor :  Una definición previa, es que un Actor es un rol que un usuario juega con respecto al sistema. Es importante destacar el uso de la palabra rol, pues con esto se especifica que un Actor no necesariamente representa a una persona en particular, sino más bien la labor que realiza frente al sistema. Como ejemplo a la definición anterior, tenemos el caso de un sistema de ventas en que el rol de Vendedor con respecto al sistema puede ser realizado por un Vendedor o bien por el Jefe de Local. Caso de Uso :  Es una operación/tarea específica que se realiza tras una orden de algún agente externo, sea desde una petición de un actor o bien desde la invocación desde otro caso de uso. Relaciones : Asociación Es el tipo de relación más básica que indica la invocación desde un actor o caso de uso a otra operación (caso de uso...

Nintendo !!!

Nintendo Switch, la cual estrenaría nuevo procesador y mayor capacidad de memoria De acuerdo a unos documentos de la Comisión Federal de Comunicaciones de Estados Unidos (FCC), descubiertos por The Verge, Nintendo está por lanzar una nueva versión de la actual Switch con mejoras en algunos de sus componentes internos. De acuerdo a la información, Nintendo solicitó a la FCC un "Cambio de Permiso Clase II", que es una solicitud para modificar algunos componentes de un dispositivo existente sin tener que volver a pasar por todo el proceso de certificación. Esto en Estados Unidos. En el documento se pueden ver los cambios que presenta Nintendo para esta nueva Switch, la cual incluso conserva el número de modelo.

iPhone 7

iPhone 7 podría matar a dos de los peores defectos de diseño del iPhone 6s ' iPhone of this Año de Actualización probablemente no va a Ser un espectacular, Pero podría matar a dos de Nuestros Mayores Quejas de diseño con Los Ultimos Modelos. Una Unidad ficticia iPhone 7 Promete bandas de antena Más discretos que están Lejos de Ser tan feo, y lente uña de la Cámara de lavado. También Vuelve a Encender La Esperanza de la ONU inteligente conector. Con la Demanda de la Caída iPhone, los Inversores están Pidiendo una manzana al: entregar algo sorprendente Este Año. Sin embargo, Informes Recientes Decir Que tendremos Que conformar Con otro iPhone 6 Lookalike ya QUE PREPARA Una Revisión de Apple Importante para el 10 cumpleaños del iPhone en 2017. Pero el iPhone 7 probablemente no habrá    Que  decepcionante. Una foto De Una Unidad ficticia Enviado en MacRumors   sugiere Que AUNQUE PUEDE Parece...