Exercício: ordenar valores com Bubble Sort
Fala galera da Programação, tudo bem com vocês? Hoje vocês vão ver comigo como montar um algoritmo para a ordenação de valores usando a técnica do Bubble Sort.
Para realizar o Bubble Sort, siga os seguintes passos:
- Compare os elementos adjacentes da lista.
- Se eles estiverem em ordem errada (o primeiro é maior que o segundo), troque-os de posição.
- Repita o processo até que nenhuma troca seja necessária, indicando que a lista está ordenada.
Ao final, exiba os valores ordenados.
Vamos a um exemplo em algoritmos
Algoritmo diferenca_valores Declare valor1, valor2, diferenca como real Escreva "Digite o primeiro valor: " Leia valor1 Escreva "Digite o segundo valor: " Leia valor2 Se valor1 > valor2 Então diferenca <- valor1 - valor2 Senão diferenca <- valor2 - valor1 FimSe Escreva "A diferença entre os valores é: ", diferenca FimAlgoritmo
Explicação do algoritmo
Este algoritmo utiliza a técnica de ordenação Bubble Sort para ordenar 10 valores numéricos digitados pelo usuário. Primeiro, é feita a leitura dos valores em um vetor.
Em seguida, utiliza-se um loop duplo para comparar cada par de valores e, se o valor da posição i for maior que o valor da posição j, troca-se as posições dos valores.
Esse processo é repetido até que todos os valores estejam ordenados. Por fim, os valores são exibidos em ordem crescente.
Vamos ver Bubble Sort em Python?
# leitura dos 10 valores
valores = []
for i in range(10):
valor = float(input(f"Digite o {i+1}º valor: "))
valores.append(valor)
# algoritmo Bubble Sort para ordenação crescente
for i in range(len(valores)):
for j in range(len(valores)-1):
if valores[j] > valores[j+1]:
valores[j], valores[j+1] = valores[j+1], valores[j]
# exibição dos valores ordenados
print("Valores em ordem crescente:")
for valor in valores:
print(valor)
Explicação do código Python
Primeiramente, o programa lê os 10 valores numéricos através de um loop for. Em seguida, é realizado o algoritmo Bubble Sort para ordenar os valores em ordem crescente.
O Bubble Sort funciona comparando os elementos adjacentes da lista, e caso um seja maior que o outro, eles são trocados de posição. Esse processo é repetido até que a lista esteja completamente ordenada.
Por fim, é exibida a lista ordenada em ordem crescente utilizando outro loop for.
Sugestão de resposta em C / C++
#include <stdio.h>
int main()
{
int vetor[10], i, j, aux;
// Lendo os valores
for(i=0; i<10; i++){
printf("Digite o %do valor: ", i+1);
scanf("%d", &vetor[i]);
}
// Ordenando com Bubble Sort
for(i=0; i<9; i++){
for(j=i+1; j<10; j++){
if(vetor[i]>vetor[j]){
aux = vetor[i];
vetor[i] = vetor[j];
vetor[j] = aux;
}
}
}
// Exibindo em ordem crescente
printf("\nValores em ordem crescente: ");
for(i=0; i<10; i++){
printf("%d ", vetor[i]);
}
return 0;
}
Explicação do código em C / C++
No código acima, primeiro declaramos um vetor de tamanho 10 e duas variáveis auxiliares do tipo inteiro para auxiliar na ordenação. Em seguida, utilizamos um loop for para ler os valores digitados pelo usuário e armazená-los no vetor.
Em seguida, utilizamos a técnica de ordenação Bubble Sort para ordenar os valores do vetor em ordem crescente. Para isso, utilizamos dois loops for aninhados: o primeiro percorre o vetor até o penúltimo elemento e o segundo percorre o vetor a partir do elemento seguinte ao elemento do primeiro loop até o último elemento. Dentro desses loops, comparamos os valores adjacentes e, se o valor do elemento atual for maior do que o valor do próximo elemento, fazemos a troca entre eles.
Por fim, utilizamos outro loop for para exibir os valores do vetor já ordenados em ordem crescente.
Sugestão de Resposta em Javascript
// lê os 10 valores
let valores = [];
for (let i = 0; i < 10; i++) {
valores[i] = parseInt(prompt(`Digite o valor ${i+1}:`));
}
// ordena os valores com Bubble Sort
for (let i = 0; i < valores.length - 1; i++) {
for (let j = 0; j < valores.length - i - 1; j++) {
if (valores[j] > valores[j+1]) {
let temp = valores[j];
valores[j] = valores[j+1];
valores[j+1] = temp;
}
}
}
// exibe os valores ordenados
console.log("Valores em ordem crescente:");
for (let i = 0; i < valores.length; i++) {
console.log(valores[i]);
}
Explicando o código em Javascript
Conforme o código acime, usamos um loop para ler os 10 valores digitados pelo usuário e armazená-los em um array chamado valores. Em seguida, implementamos o algoritmo de ordenação Bubble Sort com outro par de loops, onde comparamos cada par de elementos e os trocamos de lugar caso estejam fora de ordem.
Por fim, exibimos os valores em ordem crescente no console. É importante notar que, ao usar o console.log(), os valores aparecerão na ordem em que foram digitados. Para exibir na ordem correta, é preciso usar alguma técnica de formatação de saída.
Exemplo de resposta em Pascal / Delphi / Lazarus
Para Pascal / Delphi / Lazarus publicamos no site Show Delphi.
Acessar o Exemplo em Pascal / Delphi / Lazarus.
Beleza pessoal? Neste post vimos mais a respeito do algoritmo de ordenação Bubble Sort e espero que possa ajudar nos seus estudos.
Dúvidas ou sugestões em outras linguagens? Deixe o seu comentário!
Um abraço e até o próximo post! Valeu!