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; }