Lucas Daniel Postado Dezembro 8, 2009 Denunciar Share Postado Dezembro 8, 2009 Aê pessoal preciso de uma mão .... para implementar o algoritmo d ordenação o mergesort em paralelo openMP .... quem puder me dar dicas como iniciar agradeço .... abrass Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Lucas Daniel Postado Dezembro 9, 2009 Autor Denunciar Share Postado Dezembro 9, 2009 (editado) Pessoal abaixo o mergesort .... agora preciso de ajuda para paralelizar ele ... tipo vou paralelizar a parte onde divide o vetor em partes .... +- isso ?#include <stdio.h>#include <stdlib.h>#include <time.h>//Autores: Lucas Daniel Küster Vieira, Ronneesleyint main(int argc, char *argv[]){ srand(time(NULL)); int i, tam = 20; int vet[tam]; for (i=0; i<tam; i++){ vet = rand() % 50; } printf("Vetor desordenado:\n\n"); for (i = 0; i < tam; i++){ if (i != 0) printf(", "); printf("%d", vet); } //chama o método ordenarMergeSortIterativa(tam, vet); printf("\n\nVetor ordenado: \n\n"); for (i = 0; i < tam; i++){ if (i != 0) printf(", "); printf("%d", vet); } printf("\n\n"); system("PAUSE"); return 0;}void intercala(int p, int q, int r, int v[]){ int i, j, k, *w; w = malloc( (r - p) * sizeof (int) ); i = p; j = q; k = 0; while (i < q && j < r){ if (v <= v[j]) w[k++] = v[i++]; else w[k++] = v[j++]; } while (i < q) w[k++] = v[i++]; while (j < r) w[k++] = v[j++]; for (i = p; i < r; i++) v = w[i - p]; free(w);} int ordenarMergeSortIterativa(int n, int v[]){ int p, r, b = 1; while (b < n){ p = 0; while (p + b < n){ r = p + 2 * b; if (r > n) r = n; intercala(p, p + b, r, v); p = p + 2 * b; } b = 2 * b; }} Editado Dezembro 9, 2009 por Lucas Daniel Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Lucas Daniel
Aê pessoal preciso de uma mão .... para implementar o algoritmo d ordenação o mergesort em paralelo openMP .... quem puder me dar dicas como iniciar agradeço ....
abrass
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.