Ir ao conteúdo

analise do Bubble sort


Pattack

Posts recomendados

Postado

alguém pode me ajudar a analisar um programa bubble sort em c++ (em anexo

estou com dificuldade para analisar um programa bubble sort em c++ e preciso de alguem que manja do assunto pra me ajudar, preciso verificar o tempo, a quantidade de passos que ele faz para ordenaçao sendo ela crescente e decrescente e de tamanho 10,100 e 1000. acrescentando linhas para imprimir os resultados na tela.:confused:

bubble sort.txt

Postado

Para saber o tempo basta usar a função time de time.h.

Dessa forma você consegue atribuir a hora do sistema antes e após a função de ordenação. Feito isso basta comparar com difftime.

Para saber a quantidade de passos, você pode declarar uma variável global que vai incrementando a cada passo.

Postado
Para saber o tempo basta usar a função time de time.h.

Dessa forma você consegue atribuir a hora do sistema antes e após a função de ordenação. Feito isso basta comparar com difftime.

Para saber a quantidade de passos, você pode declarar uma variável global que vai incrementando a cada passo.

acho que fiz correto a parte da atribuiçao do tempo porém nao to conseguindo fazer a variavel global. mandei codigo com a funçao time pra ver se declarei corretamente, aqui rodou sem erro...

bubbletime.txt

Postado

Declare a variável fora de qualquer função.


int conta = 0;


void BubbleSort(int* v, int tam){
int i, j = tam, k;
int trocou;

do{
tam--;
trocou = 0;
for(i = 0; i < tam; i++){
if(v[i] > v[i + 1]){
int aux = 0;
aux = v[i];
v[i] = v[i+1];
v[i+1] = aux;
trocou = 1;
[COLOR=Red][B] conta++;
[/B][/COLOR] for(k = 0; k < j; k++){
printf("%d ", v[k]);
}

printf("\n");
}
}

}while(trocou);
}

Postado
Declare a variável fora de qualquer função.


int conta = 0;


void BubbleSort(int* v, int tam){
int i, j = tam, k;
int trocou;

do{
tam--;
trocou = 0;
for(i = 0; i < tam; i++){
if(v[i] > v[i + 1]){
int aux = 0;
aux = v[i];
v[i] = v[i+1];
v[i+1] = aux;
trocou = 1;
[COLOR=Red][B] conta++;
[/B][/COLOR] for(k = 0; k < j; k++){
printf("%d ", v[k]);
}

printf("\n");
}
}

}while(trocou);
}

como eu faço pra mudar o tamanho de 10 pra 100 e depois pra 1000 ? eu mudo o valor do tamanho aqui mas quando faço a mudança o programa parece estar em looping infinito e nao aparece o vetor original a ser ordenado.

Postado
como eu faço pra mudar o tamanho de 10 pra 100 e depois pra 1000 ? eu mudo o valor do tamanho aqui mas quando faço a mudança o programa parece estar em looping infinito e nao aparece o vetor original a ser ordenado.

É em 'define tamanho' mesmo e é normal demorar.

Já com outros algoritmos de ordenação você verá que são mais rápidos.

Arquivado

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

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

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

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!