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

[revisão pendente][revisão pendente]
Conteúdo apagado Conteúdo adicionado
Linha 2:
 
<source lang="c">
void insertion_sort(int tabela[], int largura){
int i, memoria, contador;
{
bool marcador;
int i, memoria,
for(i=1; i<largura; i++){
contador;
memoria = tabela[i];
bool marcador;
contador = i-1;
 
do{
for(i=1; i<largura; i++)
marcador = false;
{
if(tabela[contador] > memoria){
memoria = tabela[i];
tabela[contador+1] = i-1tabela[contador];
contador--;
do
marcador = true;
{
}
marcador = false;
if(contador < 0) marcador = false;
}while(marcador);
if(tabela[contador] > memoria)
}
{
tabela[contador+1] = tabela[contador]memoria;
}
contador--;
marcador = true;
}
if(contador < 0)
marcador = false;
}
while(marcador);
}
tabela[contador+1] = memoria;
</source>
 
=Selection sort=
<source lang="c">
void selectionSortselectionSort3( int vetorDesordenado[], int tamanhoVetor ){ //Funçao selection recebendo vetor e tamanho
int i, j, posicaoValorMinimo;
{
for (i = 0; i < ( tamanhoVetor - 1 ); i++){ //Loop para percorrer o vetor
int i, j, posicaoValorMinimo;
posicaoValorMinimo = i; //O valor minimo de posiçao do vetor a ser percorrido e 0
 
for (ij = 0;( i <+ (1 tamanhoVetor); -j 1< )tamanhoVetor; ij++){ //LoopPercorreremos parao percorrervetor da posiçao 1 ate o vetortamanho estimado
if( vetorDesordenado[j] < vetorDesordenado[posicaoValorMinimo]){ //Se a posiçao que vamos verificar for menos que a posiçao que temos em maos
{
posicaoValorMinimo = ij; //OA valorvariavel minimo'j' derecebe posiçaoesse do vetor a ser percorrido e 0valor
}
for (j = ( i + 1 ); j < tamanhoVetor; j++)//Percorreremos o vetor da posiçao 1 ate o tamanho estimado
}
{
if ( i != posicaoValorMinimo ){
if( vetorDesordenado[j] < vetorDesordenado[posicaoValorMinimo] ) //Se a posiçao que vamos verificar for menos que a posiçao que temos em maos
trocarPosicaoValores( &vetorDesordenado[i], &vetorDesordenado[posicaoValorMinimo] );//vamos chamar uma outra funçao para trocar as posiçoes de lugares
{
}
posicaoValorMinimo = j;//A variavel 'j' recebe esse valor
}
}
}
if ( i != posicaoValorMinimo )
{
trocarPosicaoValores( &vetorDesordenado[i], &vetorDesordenado[posicaoValorMinimo] );//vamos chamar uma outra funçao para trocar as posiçoes de lugares
}
}
}
void trocarPosicaoValores( int *posicaoA, int *posicaoB ){ //Funçao para trocar as posiçoes que estamos olhando
 
int temporario;
void trocarPosicaoValores( int *posicaoA, int *posicaoB )//Funçao para trocar as posiçoes que estamos olhando
temporario = *posicaoA;
{
*posicaoA = *posicaoB;
int temporario;
*posicaoB = temporario; = *posicaoA;
*posicaoA = *posicaoB;
*posicaoB = temporario;
}
</source>
Linha 70 ⟶ 53:
=== Código da Função ===
<source lang="c">
void BubbleSort(int vetor[], int tamanho){
{
int aux, i, j;
for(j=tamanho-1; j>=1; j--){
for(ji=tamanho-10; i<j>=1; j--i++){
if(vetor[i]>vetor[i+1]){
{
for(i=0; i<j; i++)
{
if(vetor[i]>vetor[i+1])
{
aux=vetor[i];
vetor[i]=vetor[i+1];
vetor[i+1]=aux;
}
}
}
}
}
</source>
Linha 94 ⟶ 72:
 
<source lang="c">
void BubbleSort(int vetor[], int tamanho){
int memoria, troca, i, j;
{
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(j=tamanho-1; (j>=1) && (troca==1); j--)
for(i=0; i<j; i++){
{
if(vetor[i]>vetor[i+1]){
troca=0; /*Se o valor continuar 0 na próxima passada quer dizer que não houve troca e a função é encerrada.*/
memoria=vetor[i];
vetor[i]=vetor[i+1];
for(i=0; i<j; i++)
vetor[i+1]=memoria;
{
troca=1; /*Se houve troca, "troca" recebe 1 para continuar rodando.*/
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>