Ir para conteúdo
Fórum Script Brasil

Rafael1111

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Sobre Rafael1111

Rafael1111's Achievements

0

Reputação

  1. Boa noite gostaria de uma ajuda só pra comentar este código sobre MergeSort, fiz algumas linhas mas não entendi muito bem como funciona as que deixei sem comentar, se alguém puder ajudar eu agradeço desde já. Caso eu tenha comentado algo errado me corrijam, obrigado #include<stdio.h> void intercalar (int v[],int aux[],int ini1, int ini2,int fim2) //funcao de intercalacao para organizar o vetor { int in1=ini1,in2=ini2,fim1=in2-1,au=0,i; //definicao das variaveis como inteiro while(in1<=fim1 && in2<=fim2) //definicao dos valores de cada lado do vetor { if (v[in1]<v[in2]) { aux[au++] = v[in1++]; } else { aux[au++] = v[in2++]; } } while(in1<=fim1) { aux[au++] = v[in1++]; } while(in2<=fim2) { aux[au++] = v[in2++]; } for(i=0;i<au;i++){ v[i+ini1]=aux[i];} } void mergeSort (int v[], int aux[],int esq, int dir) //funcao que executa o processo MergeSort { int meio,i; if(esq<dir) { meio=(esq+dir)/2; //calcula o meio do vetor mergeSort(v,aux,esq,meio); //iteracao do MergeSort para o lado esquerdo do vetor mergeSort(v,aux,meio+1,dir); //iteracao do MergeSort para o Lado direito do vetor intercalar(v,aux,esq,meio+1,dir); //faz a chamada da funcao intercalar } } int main() { int v[10]={4,2,10,8,9,3,7,5,6,1},aux[10],i; //vetor de entrada dos dados de forma aleatoria, vetor auxiliar, controle mergeSort(v,aux,0,9); // chamada da funcao for(i=0;i<10;i++) //loop para exibir o resultado já ordenado { printf("%d\t",v[i]); } return 0; }
×
×
  • Criar Novo...