Algoritmo de ordenação: Bubble Sort
Publicado por mfs (última atualização em 12/04/2010)
[ Hits: 41.941 ]
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);
}
aritmed1.c - Aritmetica de Ponteiros
Bhaskara - Cálculo de raízes de equações do segundo grau
Turbinando o Linux Mint: o poder das Nemo Actions
Inteligência Artificial no desenvolvimento de software: quando começar a usar?
Como utilizar emblemas em pastas e arquivos no pcmanfm?
Instalando e definindo as novas fontes Adwaita no GNOME









