Algoritmo de ordenação: Bubble Sort
Publicado por mfs (última atualização em 12/04/2010)
[ Hits: 41.852 ]
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); }
Simulador de Cronômetro com 2 digitos
Ordenar vetor com algoritmo Insertion Sort
Dado três valores, informar o maior e menor número
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Novos apps de produtividade, avanços em IA e distros em ebulição agitam o universo Linux
Digitando underscore com "shift" + "barra de espaços"
Como ativar a lixeira e recuperar aquivos deletados em um servidor Linux
Como mudar o nome de dispositivos Bluetooth via linha de comando
Falha com leitor de digitais no Ubuntu: sugestões? (0)
Problema em SSD ao dar boot LinuxMint LMDE FAYE 64 (1)