Algoritmo de ordenação: Bubble Sort
Publicado por mfs (última atualização em 12/04/2010)
[ Hits: 41.663 ]
Este algoritmo ordena um vetor de uma quantidade de números pré-determinada. O diferencial é que ele não utiliza ponteiros para a passagem de parâmetros, pois ponteiros é um pouco complicado para iniciantes.
A utilização é simples, digite o número máximo de algarismos e depois digite os algarismos fora de ordem, a função vai ordena-los e imprimi-los em ordem.
Para compilar com o gcc é simples:
$ gcc -c bubble_sort.c
$ gcc -o bubble_sort bubble_sort.o
$ ./bubble_sort
Qualquer dúvida em relação ao código e só deixar um comentário que eu explico.
Abraços.
/* Algoritmo de ordenação Bubble Sort */ #include <stdio.h> /* Definição da função bubble_sort */ void bubble_sort (int vet[], int max) { int flag, i, aux; do { flag = 0; for (i = 0; i < (max - 1); i++) { /* Verfica se o vetor está em ordem, no caso ele coloca em ordem crescente, para decrescente trocar '>' por '<' */ if (vet[i] > vet[i+1]) { /* Caso não esteja, ordena */ aux = vet[i]; vet[i] = vet[i+1]; vet[i+1] = aux; flag =1; } } /* Repete enquanto algum valor estiver fora de ordem */ } while (flag == 1); /* Imprime o vetor ordenado em ordem crescente */ for (i = 0; i < max; i++) { printf ("%d ",vet[i]); } printf ("\n"); } main () { int max, i; /* Lê o total de números do vetor */ scanf ("%d", &max); /* Define o vetor com o número max de algarismos */ int vetor[max]; for (i = 0; i < max; i++) { /* Lê cada indice do vetor */ scanf ("%d",&vetor[i]); } /* Dentro dessa função o vetor será ordenado */ bubble_sort (vetor, max); }
Utilizando ponteiros na manipulação de strings
Instalar e Configurar o Slackware Linux em 2025
Como configurar os repositórios do apt no Debian 12 em 2025
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Configurando o Conky para iniciar corretamente no sistema
3 configurações básicas que podem melhorar muito a sua edição pelo editor nano
Como colorir os logs do terminal com ccze
Instalação Microsoft Edge no Linux Mint 22
Como configurar posicionamento e movimento de janelas no Lubuntu (Openbox) com atalhos de teclado
Jogando com Proton no LInux (0)
Ingress NGINX Controller CVSS base score of 9.8 (4)
Impossível corrigir problemas, você manteve (hold) pacotes quebrados. (2)