Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.BufferedReader;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import java.util.ArrayList;
- /*
- Autor: Veronica Duran
- Revisiones: Uriel C.H.
- */
- public class Trabajo_Intercalacion {
- public static void main(String[] arg) {
- int op = 0, tam = 0, num = 0;
- Trabajo_Intercalacion o = new Trabajo_Intercalacion();
- BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
- try {
- System.out.println("TAMAÑO DEL ARREGLO 1");
- tam = Integer.parseInt(br.readLine());
- ArrayList<Integer> array = o.Llenar(tam);
- o.Imprimir(array, tam);
- //Intercalacion
- int tam2 = 0;
- //Pedimos el tamaño del arreglo 2
- System.out.println("\nTAMAÑO DEL ARREGLO 2");
- tam2 = Integer.parseInt(br.readLine());
- ArrayList<Integer> array2 = o.Llenar(tam2);
- o.Imprimir(array2, tam2);
- Burbuja s2 = new Burbuja();//ordenamos los 2 arreglos
- s2.Ordenar(array, tam);
- s2.Ordenar(array2, tam2);
- //los imprimimos
- System.out.println("\nArreglo 1 Ordenado\n");
- o.Imprimir(array, tam);
- System.out.println("\nArreglo 2 Ordenado\n");
- o.Imprimir(array2, tam2);
- //creamos en arreglo 3, dond se almacenaran tods los demas elementos
- int totalsize = tam+tam2;
- ArrayList<Integer> array3 = o.Ordenar(array, tam, array2, tam2);
- System.out.println("///////////");
- //llamamos el metodo de ordenar de intercalacion y le enviamos los
- //2 areeglos y esperando el regreso de los 2 ordenados, recibiendo en arreglo3
- System.out.println("\nArreglo 3 Ordenado\n");
- o.Imprimir(array3, tam + tam2);
- } catch (IOException k) {;
- }
- }
- public ArrayList<Integer> Ordenar(ArrayList<Integer> listaA, int tam1, ArrayList<Integer> listaB, int tam2) {
- int i = 0, j = 0, k = 0;
- int comparaciones=0;
- int intercambio=0;
- ArrayList<Integer> listaC = new ArrayList<Integer>();
- while (i < tam1 && j < tam2) {
- comparaciones++;
- if (listaA.get(i) < listaB.get(j)) {
- listaC.add(listaA.get(i));
- i++;
- // se incrementa k por que si no te podra 0 ya que k jamas
- // avanza
- k++;
- intercambio++;
- } else {
- listaC.add(listaB.get(j));
- j++;
- k++;
- intercambio++;
- }
- }
- for (; i < listaA.size(); i++, k++) {
- listaC.add(listaA.get(i));
- //listaC.set(k, listaA.get(i));
- }
- for (; j < listaB.size(); j++, k++) {
- listaC.add(listaB.get(j));
- //listaC.set(k, listaB.get(j));
- }
- System.out.println("Compaciones: "+comparaciones);
- System.out.println("Movimietonos: "+intercambio);
- return listaC;
- }
- public ArrayList<Integer> Llenar(int tam) {
- ArrayList<Integer> arreglo= new ArrayList<Integer>();
- for (int x = 0; x < tam; x++) {
- arreglo.add((int)(Math.random()*(tam*200)));
- }
- return arreglo;
- }
- public void Imprimir(ArrayList<Integer> arreglo, int tam) {
- for (int x = 0; x < tam; x++) {
- if ((x + 1) % 15 == 0) {
- System.out.println(arreglo.get(x));
- } else {
- System.out.print(arreglo.get(x) + " , ");
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement