Está en la página 1de 6

El peor caso se da si el vector

esta ordenado en orden


inverso y su complejidad
algorítmica
es O(n2), ya que debe realizar
el recorrido del máximo
número de iteraciones posible.
El peor caso se da si el vector
esta ordenado en orden
inverso y su complejidad
algorítmica
es O(n2), ya que debe realizar
el recorrido del máximo
número de iteraciones posible.
El peor caso se da si el vector
esta ordenado en orden
inverso y su complejidad
algorítmica
es O(n2), ya que debe realizar
el recorrido del máximo
número de iteraciones posible.
2. Investigue acerca del algoritmo de ordenamiento por inserción y:

a. Reproduzca un ejemplo (eso significa que usted debe seleccionar un conjunto de números
desordenado y mostrar paso a paso cuál es el efecto de aplicar el algoritmo de ordenamiento por
inserción sobre él).

b. Responda ¿en qué consistiría el peor caso y por qué implica una complejidad algorítmica de
O(n2)?

2. RTA/
El algoritmo de ordenamiento por inserción es un algoritmo de fácil aplicación que permite el
ordenamiento de una lista.

Su funcionamiento consiste en el recorrido por la lista seleccionando en cada iteración un valor


como clave y compararlo con el resto insertándolo en el lugar correspondiente.

Ordenamiento por inserción


Comenzamos con una lista de elementos no ordenados

Se selecciona el segundo valor como clave y se lo compara con los valores ubicados a su izquierda.
Si el valor es menor entonces se inserta en el lugar correspondiente.
Se selecciona el siguiente número como clave y se repite el proceso para todos los valores
anteriores. En el siguiente caso la clave 4 se compara primero con 5 y luego con 2. Al ser menor
que el primer caso comparado y mayor que el segundo se lo inserta entre ambos números.

Se selecciona la siguiente clave. Se sigue comparando con cada número a su izquierda hasta
encontrar uno que sea menor o llegar al principio de la lista.

Finalmente se selecciona la última clave.


Al finalizar el algoritmo tenemos como resultado la lista ordenada.

a) RTA/ Programa método de Inserción


package metodo_insercion;

import java.util.*;

import javax.swing.*;

public class Insercion {

public static void main(String[] args) {

Scanner entrada=new Scanner(System.in);

int arreglo[],nElementos,pos,aux;

nElementos=Integer.parseInt(JOptionPane.showInputDialog("Por favor digite el numero de


elementos del arreglo: "));

arreglo = new int[nElementos];

System.out.println(" Digite el arreglo : ");

for (int i=0; i<nElementos; i++){

System.out.print((i+1) + " Digite un numero :");

arreglo[i] = entrada.nextInt();

// ALGORITMO DE ORDENAMIENTO POR INSERCION


// ALGORITMO DE ORDENAMIENTO POR INSERCION
for (int i=0; i<nElementos;i++){
for (int i=0; i<nElementos;i++){
pos = i;
pos = i;
aux = arreglo[i];
aux = arreglo[i];
while ((pos>0) && (arreglo [pos-1] > aux)){
while ((pos>0) && (arreglo [pos-1] > aux)){
arreglo[pos]=arreglo[pos-1];
arreglo[pos]=arreglo[pos-1];

pos --;

}
arreglo[pos] = aux;

pos --;

arreglo[pos] = aux;

System.out.print("\n Orden Acsendente : ");

for (int i=0; i<nElementos; i++){

System.out.print(arreglo[i] + " - ");

System.out.println("");

System.out.print(" Orden Desendente : ");

for (int i=(nElementos-1); i>=0; i--){

System.out.print(arreglo[i] + " - ");

System.out.println("");

Salida:

Digite el arreglo :

1 Digite un numero :2

2 Digite un numero :5

3 Digite un numero :3

4 Digite un numero :8

5 Digite un numero :9

Orden Ascendente : 2 - 3 - 5 - 8 - 9 -

Orden Descendente : 9 - 8 - 5 - 3 - 2 -
Process finished with exit code 0

b) RTA/
El peor caso se da si el array esta ordenado de derecha a izquierda.

Si su complejidad algorítmica es O(n2), ya que debe realizar el recorrido del máximo números de
iteraciones posibles.

Este algoritmo consume mucho tiempo de ejecución. Sirve solo para organizar arrays con mínimos
elementos.

Es uno de los peores


algoritmos de ordenación en
cuanto a tiempo de ejecución,
solamente es
recomendable su uso para
ordenar listas con un número
pequeño de elementos

También podría gustarte