Programar em C/Algoritmos de ordenação: diferenças entre revisões

[edição não verificada][edição verificada]
Conteúdo apagado Conteúdo adicionado
Linha 56:
}
}
}
</source>
{{AutoCat}}
 
=== Código da Função Melhorado ===
 
Termina a execução quando nenhuma troca é realizada após uma passada pelo vetor.
 
<source lang="c">
void BubbleSort(int vetor[], int tamanho)
{
int memoria, troca, i, j;
troca=1; /*A variável "troca" será a verificação da troca em cada passada*/
for(j=tamanho-1; (j>=1) && (troca==1); j--)
{
troca=0; /*Se o valor continuar 0 na próxima passada quer dizer que não houve troca e a função é encerrada.*/
for(i=0; i<j; i++)
{
if(vetor[i]>vetor[i+1])
{
memoria=vetor[i];
vetor[i]=vetor[i+1];
vetor[i+1]=memoria;
troca=1; /*Se houve troca, "troca" recebe 1 para continuar rodando.*/
}
}
}
}
</source>