Faça um programa para receber do usuário a dimensão de um vetor (máx. 20), os elementos desse vetor e efetuar a sua ordenação utilizando o método da bolha (bubble-sort).

Passo 1

Beleza, o enunciado pede um programa que:
  1. peça ao usuário um número n (tamanho do vetor, no máximo 20);
  2. leia n valores e armazene num vetor;
  3. ordene esse vetor usando o método da bolha (bubble sort);
  4. mostre o vetor ordenado.
Conteúdo:
  • Vetores (arrays)
  • Estruturas de repetição (laços for)
  • Estrutura condicional (if)
  • Algoritmo de ordenação “bubble sort”
O que vamos precisar: entender como percorrer um vetor, comparar elementos vizinhos e trocar de lugar até tudo ficar ordenado.

Passo 2

Primeiro, o que é o bubble sort?
Imagine que temos um vetor A de tamanho n. Na “passada” i-ésima do bubble sort, a gente percorre todos os pares adjacentes A[j] e A[j+1] (com j variando) e, se A[j] > A[j+1], a gente troca eles de posição. Assim, o maior valor “borbulha” para o fim do vetor.
Matematicamente:
para j = 0 até n-2-i: se A[j] > A[j+1], troque-os é

Passo 3

Como implementar passo a passo (pensando em pseudocódigo):
  1. Leia n.
  2. Para i de 0 até n-1:
    2.1 Para j de 0 até n-2-i:
    - Se A[j] > A[j+1], então faça swap(A[j], A[j+1]).
  3. Depois de todas as passadas, o vetor está ordenado em ordem crescente.
  4. Mostre o vetor.

Passo 4

Agora, num código C simples (porque é bem didático e clássico pra esse tipo de exercício):
#include <stdio.h>

int main() {
    int n, i, j, aux;
    int A[20];

    printf("Quantos elementos (max 20)? ");
    scanf("%d", &n);
    // Garantir que n não ultrapasse 20:
    if (n < 1 || n > 20) {
        printf("Tamanho invalido!\n");
        return 1;
    }

    // Leitura dos elementos
    for (i = 0; i < n; i++) {
        printf("A[%d] = ", i);
        scanf("%d", &A[i]);
    }

    // Bubble sort
    for (i = 0; i < n-1; i++) {
        for (j = 0; j < n-1-i; j++) {
            if (A[j] > A[j+1]) {
                // troca A[j] e A[j+1]
                aux   = A[j];
                A[j]  = A[j+1];
                A[j+1]= aux;
            }
        }
    }

    // Impressão do vetor ordenado
    printf("Vetor ordenado: ");
    for (i = 0; i < n; i++) {
        printf("%d ", A[i]);
    }
    printf("\n");

    return 0;
}

Resposta

O programa acima lê o tamanho e elementos de um vetor (até 20), aplica o método da bolha para ordenar em ordem crescente e imprime o resultado.

Exercícios relacionados