GARANTIR DESCONTO

Fórum Ajuda com intercalação de vetor em java! S.O.S #571630

25/11/2016

0

Intercalação é o processo utilizado para construir uma tabela ordenada, de tmanho n+m, a
partir de duas tabelas já ordenadas de tamanhos n e m. Por exemplo, a partir das tabelas:
A = |1|3|6|7|
e
B = |2|4|5|
construímos a tabela
C = |1|2|3|4|5|6|7|
Fazer um programa em java que:
a) leia NA. número de elementos do conjunto A(NA <= 100);
b) leia, em seguida, os elementos do conjunto A;
c) leia NB. número de elementos do conjunto B(NB <= 100);
d) leia, em seguida, os elementos do conjunto B;
e) crie e imprima um conjunto C, ordenado, de tamanho NA+NB, a partir de dos conjuntos originais A e B.

Aqui está meu código,
import java.util.Scanner;
public class E10 {
public static void main(String[] args) {
@SuppressWarnings("resource")
Scanner reader = new Scanner(System.in);

int i;

System.out.println("Digite o *TAMANHO* do vetor A");
int NA = reader.nextInt();

int[] A = new int[NA];

for(i = 0; i < A.length; i++){
System.out.println("Digite os **ELEMENTOS** do vetor A");
A[i] = reader.nextInt();
}

System.out.println("Digite o *TAMANHO* do vetor B");
int NB = reader.nextInt();

int[] B = new int[NB];

for(i = 0; i < NB; i++){
System.out.println("Digite os **ELEMENTOS** do vetor B");
B[i] = reader.nextInt();
}

int TAM = NA+NB;

int[] C = new int[TAM];

for(i = 0; i < NA; i++){ //armazenando os valores DO vetor A
C[i] = A[i];
}

for(i = 0; i < NB; i++){ //armazenando os valores DO vetor B
C[i] = B[i];
}

int aux = 0; //Inicialização da variável aux

for(i = 0; i < C.length; i++){ //Ordenação
for(int j = 0; j < C.length; j++){
if(C[i] < C[j]){
aux = C[i];
C[i] = C[j];
C[j] = aux;
}
}
}

for(i = 0; i < C.length; i++){
System.out.println("Os elementos C: " + C[i]);
}
}
}
O problema que estou tendo é que quando entra no for de tamanho NB, ele substitui os valores já armazenados antes.
Como colocar novos elementos no mesmo vetor mas sem substituir os que já estão la?
Alguém pode me ajudar a resolver isso?
Alexandre Oliveira

Alexandre Oliveira

Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar