image

Acesse bootcamps ilimitados e +650 cursos pra sempre

60
%OFF

VB

Vítor Buss18/03/2025 19:25
Compartilhe
Microsoft Certification Challenge #3 DP-100Recomendados para vocêMicrosoft Certification Challenge #3 DP-100

Bubble Sort descomplicado

  • #PHP

O que é o Bubble Sort?

O Bubble Sort é um de vários algoritmos de ordenação que existem no mundo da programação, e é considerado um dos mais fáceis de entender e implementar. Sua função é ordenar os elementos de um determinado array.

O primeiro passo para entender este algoritmo, é entender o significado do seu nome "Bubble Sort", que pode ser traduzido como "Ordenação por Bolhas" (o que continua sem sentido). Mas então qual é o sentido por trás do nome? A explicação vem da forma como o algoritmo funciona: Os maiores valores vão "subindo" para o final do array, o que se assemelha com um copo de refrigerante, onde as bolhas sobem de baixo para cima no copo.

Como Funciona?

O processo de funcionamento do Bubble Sort pode se dividido em 3 passos:

  • O algoritmo percorre o array inteiro e compara cada par de elementos que estão um do lado do outro.
  • Na comparação de dois elementos, é verificado se o valor da esquerda é maior que o da direita. Se sim, os elementos trocam de posição, se não, o próximo par é verificado.
  • Este processo vai se repetir até que todos os valores tenham sido colocados em suas posições corretas, e nenhuma troca precise ser feita mais.

Implementação em PHP comentada

<?php
 function bubbleSort($nums) {
    //$n é a quantidade de itens no array
    $n = count($nums);


    //Este laço externo irá se repetir até que não tenha mais trocas ou até que a condição de parada seja atendida
    for($i=0; $i<$n-1; $i++) {


       //variával que vai servir para verificar se alguma troca aconteceu ou não
       $trocou = false;


       //este laço interno irá verificar se um par de elementos precisa ser trocado ou não, e irá repetir isso com todos os pares até que todo o array tenha sido percorrido.
       for($j=0; $j<$n-$i-1; $j++) {
          
          //compara o par de elementos, e se o primeiro for maior, realiza a troca de posições;
          if($nums[$j] > $nums[$j+1]) {
             
             //variável temporária que armazena o valor do primeiro item do par
             $temp = $nums[$j];


             //o primeiro item do par passa a ter o valor do segundo
             $nums[$j] = $nums[$j+1];


             //o segundo item do par passa a ter o valor anteriormente armazenado do primeiro
             $nums[$j+1] = $temp;


             //indica que uma troca aconteceu
             $trocou = true;
          }
       }


       //quando não tiverem mais trocas a serem feitas, termina a execução do loop externo, o array já está ordenado!
       if(!$trocou) {
          break;
       }
    }


    //devolve o array em sua forma ordenada
    return $nums;
 }

$nums = [64, 34, 25, 12, 22, 11, 90];
$resp = bubbleSort($nums);
echo "Array ordenado: " . implode(", ", $resp);
?>

Vantagens e Desvantagens do Bubble Sort

  • Vantagens: Um algoritmo fácil de entender e de implementar;
  • Desvantagens: É um algoritmo muito ineficiente em grande escala, pois sua complexidade de tempo é de O(n²);

Conclusão

O Bubble Sort é um ótimo algoritmo para se estudar com fins de aprendizagem em algoritmos e lógica de programação. Mostra conceitos básicos e importantes de se aprender para formar uma base sólida.

Se achou interessante o conceito deste algoritmo, recomendo também estudar tipos diferentes de algoritmos de ordenação, e também estudar sobre complexidade de tempo e espaço (mais conhecido como "Big O") para determinar qual estrutura é mais adequada para os seus projetos.

Compartilhe
Recomendados para você
Microsoft AI for Tech - Azure Databricks
Microsoft Certification Challenge #3 DP-100
Decola Tech 2025
Comentários (1)
DIO Community
DIO Community - 19/03/2025 15:34

Excelente artigo, Vítor! Você fez um trabalho ótimo ao explicar o algoritmo de ordenação Bubble Sort de uma maneira simples e acessível. A analogia com as bolhas subindo no copo de refrigerante é perfeita para ilustrar como o algoritmo funciona de forma intuitiva. Além disso, a implementação detalhada em PHP com explicações claras sobre cada parte do código torna o entendimento ainda mais fácil, especialmente para iniciantes.

Na DIO, acreditamos que estudar algoritmos de ordenação é uma excelente forma de desenvolver uma base sólida em lógica de programação. Seu artigo não só ajuda a entender como o Bubble Sort funciona, mas também oferece uma ótima introdução para conceitos de complexidade de tempo e espaço, que são cruciais para a escolha de algoritmos eficientes.

Qual você considera ser a maior limitação do Bubble Sort, e quando você acredita que seria mais vantajoso usar outros algoritmos de ordenação, como o Quick Sort ou Merge Sort, em vez do Bubble Sort?

Recomendados para vocêMicrosoft Certification Challenge #3 DP-100