Questão de Programação — Conceitos básicos de programação — CESGRANRIO 2022
ProgramaçãoConceitos básicos de programação
- Código
- cg016670
- Banca
- CESGRANRIO
- Órgão
- Banco da Amazônia
- Ano
- 2022
- Nível
- Superior
- Cargo
- Técnico Científico - Tecnologia da Informação
Sejam dois arrays de inteiros, com zero ou mais elementos cada, ordenados ascendentemente. Deseja-se escrever uma função que receba esses dois arrays como parâmetros e insira os seus elementos em um terceiro array, também recebido como parâmetro, de modo que os elementos inseridos no terceiro array permaneçam ordenados ascendentemente, como no exemplo abaixo.Exemplo:int v1[]={10,20,30,40,50};int v2[]={5,10,15,20};O conteúdo do terceiro array, após a chamada da função de intercalação, será{5,10,10,15,20,20,30,40,50}Nesse contexto, considere a seguinte função main de um programa Java:public class Main { public static void main(String[] args) { int v1[]={10,20,30,40,50}; int v2[]={5,10,15,20}; int v3[]=new int [v1.length + v2.length]; int p1=0,p2=0,p3=0; intercala(v1,p1,v2,p2,v3,p3); } } Qual função deve ser inserida na classe Main para que a intercalação do array v1 com o array v2 seja feita corretamente?
- Astatic void intercala(int v1[],int p1,int v2[],int p2,int v3[],int p3) { if(p1 == v1.length && p2 == v2.length) return; if(v1[p1] < v2[p2]) { v3[p3++]=v1[p1++]; intercala(v1,p1,v2,p2,v3,p3); } else { v3[p3++]=v2[p2++]; intercala(v1,p1,v2,p2,v3,p3); } }
- Bstatic void intercala(int v1[],int p1,int v2[],int p2,int v3[],int p3) {if(p1 == v1.length && p2 == v2.length)return;if(p1 < v1.length)if(p2 < v2.length)if(v1[p1] < v2[p2]) {v3[p3++]=v1[p1++];intercala(v1,p1,v2,p2,v3,p3);}else {v3[p3++]=v2[p2++];intercala(v1,p1,v2,p2,v3,p3);}else {v3[p3++]=v1[p1++];intercala(v1,p1,v2,p2,v3,p3);}elseif(p2 < v2.length) {v3[p3++]=v2[p2++];intercala(v1,p1,v2,p2,v3,p3);}}
- Cstatic void intercala(int v1[],int p1,int v2[],int p2,int v3[],int p3) {if(p1 < v1.length && p2 < v2.length)intercala(v1,p1+1,v2,p2+1,v3,p3+1);elseif(p1 < v1.length && p2 == v2.length)intercala(v1,p1+1,v2,p2,v3,p3+1);elseif(p1 == v1.length && p2 < v2.length)intercala(v1,p1,v2,p2+1,v3,p3+1);elsereturn;if(p1 < v1.length)if(p2 < v2.length)if(v1[p1] < v2[p2])v3[p3]=v1[p1];elsev3[p3]=v2[p2];elsev3[p3]=v1[p1];elsev3[p3]=v2[p2];}
- Dstatic void intercala(int v1[],int p1,int v2[],int p2,int v3[],int p3) { while(p1 < v1.length && p2 < v2.length) if(v1[p1] < v2[p2]) { v3[p3]=v1[p1]; p3+=1; p1+=1; } else if(v1[p1] > v2[p2]) { v3[p3]=v2[p2]; p3+=1; p2+=1; } else { v3[p3]=v1[p1]; p1+=1; p3+=1; v3[p3]=v2[p2]; p3+=1; p2+=1; } }
- Estatic void intercala(int v1[],int p1,int v2[],int p2,int v3[],int p3) { while(p1 < v1.length || p2 < v2.length) if(v1[p1] < v2[p2]) { v3[p3]=v1[p1]; p3++; p1++; } else if(v1[p1] > v2[p2]) { v3[p3]=v2[p2]; p3++; p2++; } else { v3[p3]=v1[p1]; p1++; p3++; v3[p3]=v2[p2]; p3++; p2++; } }