Ir ao conteúdo
  • Cadastre-se
Victor Pereira Ribeiro

#define max 100000 da erro

Recommended Posts

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MAX 100000
int interacoes = 0;
void imprime(int v[]){
    long int i;
    for(i=0 ; i < MAX - 1 ; i++) 
        printf("%d |",v);
}
void bolha (int vector[MAX]  ){
    long int x = 0,
      y = 0,
      aux = 0;
    
    
    for( x = 0; x < MAX; x++ )
  {
    for( y = x + 1; y < MAX; y++ ) // sempre 1 elemento à frente
    {
      // se o (x > (x+1)) então o x passa pra frente (ordem crescente)
      if ( vector[x] > vector[y] )
      {
         interacoes ++;
         aux = vector[x];
         vector[x] = vector[y];
         vector[y] = aux;
      }
    }
  } // fim da ordenação    
}

int main(){
    long int i, vet[MAX];
    float t_ini, t_fim, tempo;
    
    for(i=0 ; i < MAX - 1 ; i++) {
        vet = rand();
    }
    printf("\n\n\n");
    imprime(vet);
    printf("\n\n\n");
    t_ini = time(NULL);
    bolha (vet);
    t_fim = time(NULL);
    tempo = difftime(t_fim, t_ini);
    printf("\nQuick Sort\n");
    imprime(vet);
    printf("\n\nNumero de Interacoes = %d\nO tempo gasto foi de %f\n\n",interacoes, tempo);
    system("PAUSE");
    return 0;
}

 

Editado por dif
usar a tag CODE

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qual a aplicação de usar um vetor tão grande desse......

É Inviável um vetor tão Grande desse jeito como você vai alocar em sua Memória 100000 espaços.

#Mais Vamos Lá.  

 

 
vet = rand();//Nessa Linha e preciso definir o tamanho do sorteio de numeros EX: vet = rand() % 30; 30 e o intervalo que vai de 0 a 29.

Outra coisa você definiu MAX 100000 e o seu vetor é long int vai dar incompatibilidade você tera ou definir o MAX como long int ou usar operador cast EX: (long int)MAX;

 

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

para matrizes e vetores muito grandes você precisa usar memória dinâmica e passar os dados por referencia, o tamanho da pilha está limitado a 2 megabytes mais ou menos dependendo do compilador.

Sem mais... sorte

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você tem que cuidar com os parâmetros que serão passados de uma função para outra, se uma é int, não pode passar long int, mesmo que parecidas, eu ate passaria a correção mas estão apagando meus comentário, então boa sorte.

 

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@1freakday Até parei de responder os posts, estão apagando meus comentários também.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Daqui a pouco vão apagar esses também, enfim Victor, conseguiu resolver?, pode mandar mensagem privada se quiser

Editado por 1freakday

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Victor Pereira Ribeiro

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MAX 100000
int interacoes = 0;
void imprime(long int v[]){
    long int i;
    for(i=0 ; i < MAX - 1 ; i++)
        if(i % 1000 == 0)
        printf("%6li",v[i]);
}
void bolha (long int vector[MAX]  ){
    long int x = 0,
      y = 0,
      aux = 0;


    for( x = 0; x < MAX; x++ )
  {
    for( y = x + 1; y < MAX; y++ ) // sempre 1 elemento à frente
    {
      // se o (x > (x+1)) então o x passa pra frente (ordem crescente)
      if ( vector[x] > vector[y] )
      {
         interacoes ++;
         aux = vector[x];
         vector[x] = vector[y];
         vector[y] = aux;
      }
    }
  } // fim da ordenação
}

int main(){
    long int i, vet[MAX];
    float t_ini, t_fim, tempo;

    for(i=0 ; i < MAX ; i++) {
        vet[i] = i;
    }
    printf("\n\n\n");
    imprime(vet);
    printf("\n\n\n");
    t_ini = time(NULL);
    bolha (vet);
    t_fim = time(NULL);
    tempo = difftime(t_fim, t_ini);
    printf("\nQuick Sort\n");
    imprime(vet);
    printf("\n\nNumero de Interacoes = %d\nO tempo gasto foi de %f\n\n",interacoes, tempo);
    system("PAUSE");
    return 0;
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×