Algoritmo de ordenação: Bubble Sort
Publicado por mfs (última atualização em 12/04/2010)
[ Hits: 41.930 ]
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);
}
Converte Celsius para Farenheit
Parte 7 - Sessão de estudo sobre VETORES
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
[Resolvido] VirtualBox can't enable the AMD-V extension
Como verificar a saúde dos discos no Linux
Como instalar , particionar, formatar e montar um HD adicional no Linux?
Como automatizar sua instalação do Ubuntu para desenvolvimento de software.
Upscaling com imagem cortada no monitor secundário ao usar iGPU Multi ... (1)
Fiz uma pergunta no fórum mas não consigo localizar (13)
Quais os códigos mais dificeis que vcs sabem fazer? (2)
Não consigo instalar distro antiga no virtualbox nem direto no hd (7)
Servidor Ubuntu 24.04 HD 500 não tenho espaço na \home\adminis... [RES... (8)









