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:
- peça ao usuário um número
n
(tamanho do vetor, no máximo 20); - leia
n
valores e armazene num vetor; - ordene esse vetor usando o método da bolha (bubble sort);
- 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
Matematicamente:
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:
Passo 3
Como implementar passo a passo (pensando em pseudocódigo):
- Leia
n
. - Para
i
de 0 atén-1
:
2.1 Paraj
de 0 atén-2-i
:
- SeA[j] > A[j+1]
, então façaswap(A[j], A[j+1])
. - Depois de todas as passadas, o vetor está ordenado em ordem crescente.
- 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.