mmmarques 0 Denunciar post Postado Agosto 23, 2006 Pessoal tenho esse codigo e nao estou conseguinto juntar os vetores que ja estar particionados. Eu dividi ele em sub tarefas (para ficar mais rapido) mais so que agora nao consigo concatena-los como posso usar o mage ali ?? alguem pode continuar o codigo ??? abraços !! /* tempo para ordenar numeros aleatorios */ #include <iostream> #include <conio> #include <time> #include <vector> #include <stdio> #include <dos> #include <fstream> #include <math> using namespace std; /********************************* BUBBLESORT template <class T> void bubblesort(T data[], int n){ for (int i=0; i< n-1; i++) for (int j=n-1; j>i; --j) if (data[j]<data[j-1]) swap (data[j], data[j-1]); } /********************************* MAIN void main(int argc,char* argv[]) { int *v, *v1, *v2, *v3, *v4; int *t1, *t2; int n, n1; clock_t start, end; randomize(); /********************************* GERA OS VETORES if(argc!=2) { cout<<"Numero de argumentos invalido"; exit(1); } cout<<"Passo 1"<<endl; n= atoi(argv[1]); n1 = n/4; cout<<"Passo 2"<<endl; // Alocação de memoria v= (int *) malloc(n*sizeof(int)); v1= (int *) malloc(n1*sizeof(int)); v2= (int *) malloc(n1*sizeof(int)); v3= (int *) malloc(n1*sizeof(int)); v4= (int *) malloc(n1*sizeof(int)); // GERA NUMEROS ALEATORIOS for (int i=0; i<n; i++) v=random(10000); cout<<"Passo 3"<<endl; // Particionar o vetor em quatro partes for (int i=0; i<n1; i++) v1= v; for (int i=0; i<n1; i++) v2= v[n1+i]; for (int i=0; i<n1; i++) v3= v[2*n1+i]; for (int i=0; i<n1; i++) v4= v[3*n1+i]; // Ordenar vetor total start=clock(); // inicia a contagem do tempo bubblesort(v,n); // ordena o vetor temporario end=clock(); // finaliza a contagem de tempo cout<<"tempo "<<"-> "<<(end-start)<<" segundos"<<endl; // ordenar vetor particionado start=clock(); // inicia a contagem do tempo bubblesort(v1,n1); // ordena o vetor temporario bubblesort(v2,n1); // ordena o vetor temporario bubblesort(v3,n1); // ordena o vetor temporario bubblesort(v4,n1); // ordena o vetor temporario // Alocaçao de memoraia para vetores temporarios t1= (int *) malloc(2*n1*sizeof(int)); t2= (int *) malloc(2*n1*sizeof(int)); // Combina vetores v1 e v2 // Combina vetores v3 e v4 // Combina vetores t1 e t2 end=clock(); // finaliza a contagem de tempo cout<<"tempo "<<"-> "<<(end-start)<<" segundos"<<endl; } Compartilhar este post Link para o post Compartilhar em outros sites
scarenci 0 Denunciar post Postado Agosto 23, 2006 Olá mmmarques, Não sei se entendi direito, mas você já tentou concatenalos com o strcat(vetor1,vetor2); na biblioteca <string.h>, se tiver lixo ou algo assim você vai ter que colocar `\0` no final que indica fim do vetor.espero ter ajudado você...até mais... Compartilhar este post Link para o post Compartilhar em outros sites
mmmarques 0 Denunciar post Postado Agosto 23, 2006 nao sei concatenalos , eu sei que existe um metodo MAGE que faz isso mais nao consegui colocar ali Compartilhar este post Link para o post Compartilhar em outros sites
Paredao 0 Denunciar post Postado Agosto 24, 2006 Olá mmmarques, Não sei se entendi direito, mas você já tentou concatenalos com o strcat(vetor1,vetor2); na biblioteca <string.h>, se tiver lixo ou algo assim você vai ter que colocar `\0` no final que indica fim do vetor.espero ter ajudado você...até mais...strcatConcatena string e nao vetor. Apenas se ele declarar os vetores como string dai sim. Funciona normal. so q seria assim para uma frasechar str1, str2, str3;puts("Digite frase1");gets(str1);puts("Digite frase2");gets(str2);str3=strcat(str1,str2);Obs:: Nao me lembro se ta certinho, e apenas para se basear ok. Flws to no trampo dai nao da para fazer detalhado Compartilhar este post Link para o post Compartilhar em outros sites