Advertisement
Guest User

Untitled

a guest
Jun 19th, 2018
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.96 KB | None | 0 0
  1. void Juntar(int vetor[], int ini, int meio, int fim, int vetAux[]) {
  2.     int esq = ini;
  3.     int dir = meio;
  4.     for (int i = ini; i < fim; ++i) {
  5.         if ((esq < meio) and ((dir >= fim) or (vetor[esq] < vetor[dir]))) {
  6.             vetAux[i] = vetor[esq];
  7.             ++esq;
  8.         }
  9.         else {
  10.             vetAux[i] = vetor[dir];
  11.             ++dir;
  12.         }
  13.     }
  14.     //copiando o vetor de volta
  15.     for (int i = ini; i < fim; ++i) {
  16.         vetor[i] = vetAux[i];
  17.     }
  18. }
  19.  
  20. void MergeSort(int vetor[], int inicio, int fim, int vetorAux[]) {
  21.     if ((fim - inicio) < 2) return;
  22.    
  23.     int meio = ((inicio + fim)/2);
  24.     MergeSort(vetor, inicio, meio, vetorAux);
  25.     MergeSort(vetor, meio, fim, vetorAux);
  26.     Juntar(vetor, inicio, meio, fim, vetorAux);
  27. }
  28.  
  29. void MergeSort(int vetor[], int tamanho) { //função que o usuario realmente chama
  30.     //criando vetor auxiliar
  31.     int vetorAux[tamanho];
  32.     MergeSort(vetor, 0, tamanho, vetorAux);
  33. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement