Ir ao conteúdo

C Gráfico para comparação de algoritmos


Ir à solução Resolvido por V!OLADOR,

Posts recomendados

Postado
  Em 09/09/2021 às 21:05, JacklaneNick disse:

Pelo menos o bubble sort que é o que eu estou fazendo no momento não apresenta trocas com vetores ordenados

Expandir  


Uma ótima noticia. Significa que tá certo, afinal você não esperaria trocas na ordenação de algo que já tá ordenado. 😁 Viu como seu professor não tá doido?

Mas assim, tenta trabalhar primeiro no caso desordenado porque é o mais interessante dos três. Ah, e posta o gráfico final aqui pra gente apreciar uma boa arte.

  • Curtir 1
Postado
  Em 09/09/2021 às 21:46, V!OLADOR disse:

Uma ótima noticia. Significa que tá certo, afinal você não esperaria trocas na ordenação de algo que já tá ordenado. 😁 Viu como seu professor não tá doido?

Mas assim, tenta trabalhar primeiro no caso desordenado porque é o mais interessante dos três. Ah, e posta o gráfico final aqui pra gente apreciar uma boa arte.

Expandir  

Estou coletando os dados ainda , mas pode deixar que quando acabar irei postar aqui !

Postado

Sugiro mesmo fazer como eu te expliquei.

 

Escreva em torno dos dados.

 

Use um gráfico numa planilha para ajudar a entender se ainda não está claro. 

Copie os algoritmos de qualquer lugar. Eles são triviais e nem dá pra escrever muito diferente do que está no livros. E nem deveria. Por isso são chamados de referência.

O resto faça como está no programa que eu te mostrei. Depois veja o gráfico.

 

vetor.png.0af34d6243878748d94458de83372b7b.png

Veja no gráfico que postou: seu gráfico não é contínuo. São apenas 20 ou 21 pontos, conforme entenda que deve incluir o 10.000.

 

Isso é chamado desde o séc XVII de gráfico cartesiano em homenagem ao próprio.

 

Então tem o eixo X com os tamanhos, a coluna, e o eixo Y com as trocas, ou os tempos, a linha.

 

Sim, é o contrário do usual. Para cada X vai ter 3 Y, com os tempos ou trocas de cada função.

typedef struct
{
    unsigned   X;       // o tamanho do vetor
    Resultados Y[3];  // resultados de cada metodo

}   Intervalo;

 

A expressão do gráfico. Falta a corzinha.

 

O que são os Resultados?

 

typedef struct
{
    unsigned tempo;
    unsigned trocas;

}   Resultados;

 

Ou não?

 

Se fosse algo para distribuir ou usar no futuro esses testes estariam dentro de outra estrutura. a Tabela em si, que teria os contadores e os limites dos intervalos e tal. Mas aqui seria um exagero, então

 

#define TESTES 21
int main(void)
{
    Intervalo grade[TESTES] = {0};
// ...

 

E algo assim

 

int main(void)
{
    Intervalo grade[TESTES] = {0};
    // o primeiro
    unsigned tam = 100;
    grade[0].X   = tam;
    testa_intervalo(tam, grade);
    tam = 500; // para o resto
    for (int n = 1; tam <= 10000; n += 1, tam+=500)
        grade[n].X = tam,
        testa_intervalo( tam, grade + n);
    gera_o_grafico(grade, TESTES);
    return 0;
}

 

faria o serviço.

 

C pode não ser assim expressiva como C++, mas note que não há referências a vetor ou sort aí. Não precisa. Esse é o tal encapsulamento que tem lá nos livros de OOP.

 

E testa_intervalo() seria algo como no programa que te indiquei, só que mais simples.

 

E o gráfico terá então 63 pontinhos coloridos. O normal seria usar barras ou ligar os pontos por linhas.

 

uns poucos cliques no Planilhas do Google e tem um exemplo

 

image.thumb.png.3eee8bfd60ab408e61eb05d0a52ef167.png

 

:) Quase automático, já que esses programas foram feitos para isso

Postado
  Em 09/09/2021 às 23:18, JacklaneNick disse:

Nossa os meus deram resultados muito diferentes... Será que estou fazendo errado então ?

Expandir  

 

Me desculpe por não ter deixado claro. Esses são valores aleatórios. Deixei o Planilhas preencher com valores só pra ter o gráfico com dados em minutos.

 

Foi mal.

 

O que importa é você entender a razão das estruturas e o objetivo. E na planilha pode recortar direto da tela e colar na planilha e ver o gráfico com seus dados. É mais um caso de encapsulamento. Uma coisa é o gráfico outra coisa a origem dos dados.

 

 

 

 

Postado

Na verdade, pelo o que eu estou pesquisando aqui na internet a forma que estou fazendo está certa mesmo, vi algumas comparações em sites os valores eram parecidos .

  Em 09/09/2021 às 23:36, arfneto disse:

Me desculpe por não ter deixado claro. Esses são valores aleatórios. Deixei o Planilhas preencher com valores só pra ter o gráfico com dados em minutos.

 

Foi mal.

 

O que importa é você entender a razão das estruturas e o objetivo. E na planilha pode recortar direto da tela e colar na planilha e ver o gráfico com seus dados. É mais um caso de encapsulamento. Uma coisa é o gráfico outra coisa a origem dos dados.

Expandir  

Entendi !

Postado
  Em 09/09/2021 às 23:36, JacklaneNick disse:

Na verdade, pelo o que eu estou pesquisando aqui na internet a forma que estou fazendo está certa mesmo, vi algumas comparações em sites os valores eram parecidos

Expandir  

 

Sugiro não perder tempo com isso. Apenas programe os algoritmos como estão em toda parte e teste com vetores de 3 ou 4 elementos, contando as trocas numa folha de papel. E coloque na estrutura que te mostrei ou algo equivalente. E depois veja como vai criar o gráfico.

 

 

Postado
  Em 09/09/2021 às 23:46, arfneto disse:

Sugiro não perder tempo com isso. Apenas programe os algoritmos como estão em toda parte e teste com vetores de 3 ou 4 elementos, contando as trocas numa folha de papel. E coloque na estrutura que te mostrei ou algo equivalente. E depois veja como vai criar o gráfico.

Expandir  

Ok, obrigado pela dica !

Crie uma conta ou entre para comentar

Você precisa ser um usuário 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 comunidades sobre tecnologia do Brasil. Leia mais

Mostrar 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

Mostrar mais  
×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!