miércoles, 9 de marzo de 2016

Ordenamiento por Intercalación Cuadrática

Códigos del Métodos de Ordenamiento por Intercalación

Intercalación Cuadrática:

                                Descripción

La idea central de este algoritmo consiste en realizar sucesivas particiones y fusiones a un arreglo para producir secuencias ordenadas de longitud cada vez mayor. En la primera  pasada la longitud de la partición es de 1 y la fusión produce una secuencia ordenada de longitud 2. En la segunda pasada las longitudes se duplican y este proceso se repite hasta que la longitud de la secuencia de la partición sea mayor o igual que el número de elementos del arreglo original.

Algoritmo

1.- Inicio 

2.- Dividir el arrgelo en N subarreglos de tamaño 1 e intercalar pares adyacentes 

separados de los subarreglos. 

3.- Incrementar las particiones del arreglo en duplos, cuadruplos, etcetera, y asi 

sucesivamente.

4.- Repetir el proceso hasta que solo quede un arreglo de tamaño N. 


5.- Fin del algoritmo.


Código



import java.util.Scanner;  
import java.math.*;  
public class Main {  
    public static void main(String[] args) {  
      //Se declara la variable de ingreso de los valores //
      Scanner sc=new Scanner(System.in);  
      //Muestra en pantalla el dato a ingresar coeficiente cuadratico//
      System.out.println("Ingresa coeficiente cuadratico");  
      int a= sc.nextInt();  
       //Muestra en pantalla el dato a ingresar coeficiente lineal//
      System.out.println("Ingresa coeficiente lineal");  
      int b= sc.nextInt();  
      //Se ingresa el valor constante//    
      System.out.println("Ingresa constante");  
      int c= sc.nextInt();  
      //A la variable se le hace la operacion de elevarla a la potencia//
      double disc=Math.pow(b,2)-4*a*c;  
      //Se hace la validacion de la constante//
        if(a!=0){  
         //Si dicho valor es un valor negativo corresponde a numeros imaginarios// 
         if(disc<0){  
          System.out.println("Tiene raices imaginarias");  
          }else{  
          double x1=(-b+Math.sqrt(disc))/(2*a);  
          double x2=(-b-Math.sqrt(disc))/(2*a);  
          System.out.println("X1 = "+x1+" X2 = "+x2);  
        }  
      }else{  
         
      //Si cumple con la condiciones se muestra el resultado//
      System.out.println("El coeficiente cuadratico debe ser diferente de 0");  
      }        
      }  


1 comentario:

  1. buenas, no me queda claro que es lo que hace podrian adjutar algun ejemplo por favor

    ResponderEliminar