Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

mmmarques

juntar vetores particionados

Recommended Posts

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.