Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include<time.h>
- void intercala(int vetor[],int inicio,int meio,int fim);
- void merge(int vetor[],int incio,int fim);
- int main()
- {
- int vetor[10],IND;
- time(NULL);
- for(IND = 0; IND < 10; IND++)
- {
- vetor[IND] = rand() % 10;
- }
- merge(vetor,0,9);
- for(IND = 0; IND < 10; IND++)
- {
- printf("%d\t",vetor[IND]);
- }
- return 0;
- }
- void intercala(int vetor[],int inicio,int meio,int fim)
- {
- int primeiro,segundo,fprimeiro,fsegundo;
- int aux[10],i,j;
- primeiro = inicio;
- fprimeiro = meio;
- segundo = meio + 1;
- fsegundo = fim;
- while(primeiro <= fprimeiro && segundo <= fsegundo)
- {
- if(vetor[primeiro] < vetor[segundo])
- {
- aux[i] = vetor[primeiro];
- primeiro++;
- }
- else
- {
- aux[i] = vetor[segundo];
- segundo++;
- }
- i++;
- }
- for( j = primeiro; j <= fprimeiro; j++)
- {
- aux[i] = vetor[j];
- i++;
- }
- for(j = segundo; j <= fsegundo; j++)
- {
- aux[i] = vetor[j];
- i++;
- }
- for(i = inicio ; i < fim; i++)
- {
- vetor[i] = aux[i];
- }
- return;
- }
- void merge(int vetor[],int inicio, int fim)
- {
- if(inicio < fim)
- {
- int meio;
- meio = ( inicio + fim ) / 2;
- merge(vetor,inicio,meio);
- meio++;
- merge(vetor,meio,fim);
- intercala(vetor,inicio,meio,fim);
- }
- return;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement