Ir para conteúdo

POWERED BY:

Arquivado

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

Carlos Eduardo Bellotti

[Resolvido] Metodo Bolha

Recommended Posts

Bom dia Galera !

Estou com a seguinte duvida ! Existe o metodo bolha ja implementado como pode verificar abaixo !

 

void bolha (int vetor[Max], int n ){

int passo,j,aux;
int nrotroca,nrocondicao,nropasso;	
nrotroca=0;
nropasso=0;
int troca=true;
for (passo=0;passo<n-1 && troca=true){
		nropasso++; troca= false;
		for(j=0;j<n-passo-1;j++){
				if (vetor[j]>vetor[j+1]){
				nrotroca++;
					axu=vet[j];
					vet[j]=vet[j+1];
					vet[j+1]=aux;
				}
			}
}
}

então esse é o metodo bolha padrão ! certo ..eu posso fazer alguma alteração no codigo tipo pra ficar mais eficiente.ow ele deixaria de ser o metodo bolha ? Igual eu fiz em baixo !

 

int bolha (int vetor[MAX])
{
int passo,j,aux,i=0;
int troca=TRUE;
for(passo=0;passo<MAX-1&&troca==TRUE;passo++)
{
troca=FALSE;
for(j=0;j<MAX-passo-1;j++)
{
if(vetor[j]>vetor[j+1])
{
troca=TRUE;
aux=vetor[j];
vetor[j]=vetor[j+1];
vetor[j+1]=aux;
}

if(vetor[i]<vetor[i-1])
{
troca=TRUE;
aux=vetor[i];
vetor[i]=vetor[i-1];
vetor[i-1]=aux;
i--;
}
}



}
return(TRUE);
}

Obrigado pessoal ..

 

Carlos Bellotti

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara pra você saber isso nd melhor q fazer os testes de mesa.

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo, acho que está equivocado no seu código... já testou ele pra ver o resultado??

 

Primeiro, você quer trocar a posição de um elemento se ele for maior que o próximo... e em seguida trocar o valor do anterior com o atual se ele for menor que o atual??? Isso tá estranho... sem contar que sua variável i foi inicializada com 0... e nunca é incrementada....

 

Mas o principal problema é que você não entendeu como funciona o método de bolha pelo que percebo... faça um teste de mesa simulando passo a passo e veja que sua lógica está equivocada.

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agradeço a colaboração de todos ! E que o problemas foi o seguinte, eu estava fazendo a ordenção pelo metodo bolha .! o padrão ! ae um amigo meu alterou o metodo bolha para o codigo 2 o segundo ..que tem duas comparações , porem vocês ressaltaram que está errado ! Porem a dúvida e o seguinte ,axu que num fui bem claro, exemplo tem o codigo bolha padrão já o ( Metodo que ele faz a ordenação ) minha duvida e se eu posso alterar alguma coisa no metodo ! sei la colocar mais uma comparação !! Se ainda continuaria sendo o metodo bolha !

 

Obrigado Galera !!

 

Carlos

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom veja esse site: http://www.bdjogos.com/biblioteca_conteudo.php?id=10

para q você entenda tem 2 tipos o bolha original e o otimizado..

 

assim faça os testes de mesa como disse, c em tds passagens ele fizer a msm coisa q o bolha, pode ser chamado de bolha, senaum... pq tem tantos algoritmos de ordenação..

 

[]'s

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.