logotipo Blog Giovani Da Cruz
Algoritmos com Laços

Exercício: ordenar valores com Bubble Sort

5 min de leitura · publicado em 22/04/2023 856 visualizações

Algortimo de ordenação Bubble SortFala 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!

Deixe um comentário

Seu e-mail não será publicado.