Advertisement
urksiful

Intercalacion

Nov 15th, 2015
152
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.70 KB | None | 0 0
  1. import java.io.BufferedReader;
  2. import java.io.IOException;
  3. import java.io.InputStreamReader;
  4. import java.util.ArrayList;
  5.  
  6. /*
  7. Autor: Veronica Duran
  8. Revisiones: Uriel C.H.
  9.  
  10. */
  11.  
  12. public class Trabajo_Intercalacion {
  13.  
  14.  
  15.  
  16.     public static void main(String[] arg) {
  17.         int op = 0, tam = 0, num = 0;
  18.         Trabajo_Intercalacion o = new Trabajo_Intercalacion();
  19.  
  20.         BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  21.         try {
  22.             System.out.println("TAMAÑO DEL ARREGLO 1");
  23.             tam = Integer.parseInt(br.readLine());
  24.             ArrayList<Integer> array = o.Llenar(tam);
  25.             o.Imprimir(array, tam);
  26.  
  27.             //Intercalacion
  28.             int tam2 = 0;
  29.             //Pedimos el tamaño del arreglo 2
  30.             System.out.println("\nTAMAÑO DEL ARREGLO 2");
  31.             tam2 = Integer.parseInt(br.readLine());
  32.             ArrayList<Integer> array2 = o.Llenar(tam2);
  33.  
  34.             o.Imprimir(array2, tam2);
  35.            
  36.             Burbuja s2 = new Burbuja();//ordenamos los 2 arreglos
  37.             s2.Ordenar(array, tam);
  38.             s2.Ordenar(array2, tam2);
  39.             //los imprimimos
  40.             System.out.println("\nArreglo 1 Ordenado\n");
  41.             o.Imprimir(array, tam);
  42.             System.out.println("\nArreglo 2 Ordenado\n");
  43.             o.Imprimir(array2, tam2);
  44.             //creamos en arreglo 3, dond se almacenaran tods los demas elementos
  45.             int totalsize = tam+tam2;
  46.             ArrayList<Integer> array3 = o.Ordenar(array, tam, array2, tam2);
  47.            
  48.            
  49.             System.out.println("///////////");
  50.             //llamamos el metodo de ordenar de intercalacion y le enviamos los
  51.             //2 areeglos y esperando el regreso de los 2 ordenados, recibiendo en arreglo3
  52.    
  53.             System.out.println("\nArreglo 3 Ordenado\n");
  54.             o.Imprimir(array3, tam + tam2);
  55.  
  56.         } catch (IOException k) {;
  57.         }
  58.     }
  59.  
  60.     public ArrayList<Integer> Ordenar(ArrayList<Integer> listaA, int tam1, ArrayList<Integer> listaB, int tam2) {
  61.         int i = 0, j = 0, k = 0;
  62.         int comparaciones=0;
  63.         int intercambio=0;
  64.         ArrayList<Integer> listaC = new ArrayList<Integer>();
  65.         while (i < tam1 && j < tam2) {
  66.             comparaciones++;
  67.             if (listaA.get(i) < listaB.get(j)) {
  68.  
  69.                 listaC.add(listaA.get(i));
  70.                 i++;
  71.                 // se incrementa k por que si no te podra 0 ya que k jamas
  72.                 // avanza
  73.                 k++;
  74.                 intercambio++;
  75.             } else {
  76.                 listaC.add(listaB.get(j));
  77.                 j++;
  78.                 k++;
  79.                 intercambio++;
  80.             }
  81.         }
  82.         for (; i < listaA.size(); i++, k++) {
  83.             listaC.add(listaA.get(i));
  84.             //listaC.set(k, listaA.get(i));
  85.         }
  86.          for (; j < listaB.size(); j++, k++) {
  87.              listaC.add(listaB.get(j));
  88.             //listaC.set(k, listaB.get(j));
  89.         }
  90.         System.out.println("Compaciones: "+comparaciones);
  91.         System.out.println("Movimietonos: "+intercambio);
  92.         return listaC;
  93.  
  94.     }
  95.    
  96.  
  97.     public ArrayList<Integer> Llenar(int tam) {
  98.         ArrayList<Integer> arreglo= new ArrayList<Integer>();
  99.         for (int x = 0; x < tam; x++) {
  100.             arreglo.add((int)(Math.random()*(tam*200)));
  101.         }
  102.         return arreglo;
  103.     }
  104.  
  105.     public void Imprimir(ArrayList<Integer> arreglo, int tam) {
  106.         for (int x = 0; x < tam; x++) {
  107.             if ((x + 1) % 15 == 0) {
  108.                 System.out.println(arreglo.get(x));
  109.             } else {
  110.                 System.out.print(arreglo.get(x) + " , ");
  111.             }
  112.         }
  113.     }
  114. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement