Cadernos de Questões

Provas Favoritas

Filtros Salvos

Foram encontradas 60 questões.
#2493010

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?

  • static 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);       }  }
  • static 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);             }        else              if(p2 < v2.length) {                   v3[p3++]=v2[p2++];                    intercala(v1,p1,v2,p2,v3,p3);            }  }
  • static 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);     else         if(p1 < v1.length && p2 == v2.length)               intercala(v1,p1+1,v2,p2,v3,p3+1);          else               if(p1 == v1.length && p2 < v2.length)                     intercala(v1,p1,v2,p2+1,v3,p3+1);                else                     return;     if(p1 < v1.length)        if(p2 < v2.length)             if(v1[p1] < v2[p2])                  v3[p3]=v1[p1];             else                  v3[p3]=v2[p2];             else                  v3[p3]=v1[p1];             else                  v3[p3]=v2[p2];  }
  • static 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;                 }  }
  • static 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++;                }  }
Fale com IAgo
IAgo - Assistente IAProva
IA
Olá! Sou o IAgo, seu assistente aqui no IAProvatec 😊
Veja como posso te ajudar:
Agora