Seja muito bem vindo à aula 117 do nosso curso gratuito de programação com a linguagem C.
Hoje, no exercício 7, vamos fazer um programa para ordenar um vetor de números inteiros com a linguagem C.
7) Faça um programa para ordenar um vetor com 100 números inteiros. Imprima o vetor antes e após a ordenação.
O algoritmo apresentado, apesar de não ser muito eficiente, é um dos algoritmos de ordenação mais simples. Ele é conhecido como bubble sort ou algoritmo bolha, devido seu comportamento de levar sempre o maior elemento para o final do vetor.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
int i, contador = 0, troca, copia, vetor[100];
srand(time(NULL));
// preenche o vetor com números entre 0 e 999
for(i = 0; i < 100; i++){
vetor[i] = rand() % 1000;
}
// imprime o vetor antes da ordenação
printf("Antes da ordenacao:\n");
for(i = 0; i < 100; i++){
printf("%3d ", vetor[i]);
}
// ordena o vetor
do{ // executa enquanto foi feito ao menos uma troca
troca = 0;
contador++; // conta a quantidade de vezes que este trecho foi executado
for(i = 0; i < 99; i++){ // percorre todo o vetor comparando o elemento i com o i+1
if(vetor[i] > vetor[i+1]){ // se o elemento i for maior que o i+1, troca
copia = vetor[i];
vetor[i] = vetor[i+1];
vetor[i+1] = copia;
troca = 1;
}
}
}while(troca);
// imprime o vetor após a ordenação
printf("\nApos a ordenacao: Contador: %d\n", contador);
for(i = 0; i < 100; i++){
printf("%3d ", vetor[i]);
}
return 0;
}
