Como implementar Bubble Sort em Python?



Neste blog, você aprenderá o código e a explicação da classificação de uma lista do Python usando a classificação por bolha usando o método de troca.

Classificar significa organizar quaisquer dados em ordem crescente ou decrescente de acordo com alguma relação linear entre os elementos. Este artigo sobre Bubble Sort em irá ajudá-lo a compreender este conceito em detalhes.

Estaremos cobrindo os tópicos abaixo neste blog:





O que é Bubble Sort?

O tipo de bolha também é conhecido como tipo de afundamento. É um algoritmo de classificação simples que percorre continuamente a lista a ser classificada, comparando cada par de itens adjacentes e trocando-os se não estiverem na ordem correta. As etapas são repetidas até que não sejam mais necessárias trocas, quando a lista é classificada.

Etapas para realizar uma classificação por bolha

  • Compare o primeiro e o segundo elemento da lista e troque se eles estiverem na ordem errada.
  • Compare o segundo e o terceiro elemento e troque-os se estiverem na ordem errada.
  • Proceda da mesma forma até o último elemento da lista de maneira semelhante.
  • Continue repetindo todas as etapas acima até que a lista seja classificada.

As etapas acima serão mais claras com as seguintes visualizações -



Classificação por bolha em Python - Edureka



Algoritmo de classificação de bolhas

Agora, vejamos o algoritmo por trás do Bubble Sort.

Primeira passagem:

instruções if em consultas sql

( 16,19 , 11,15,10) -> ( 16,19 , 11,15,10) - O algoritmo compara os dois primeiros elementos e troca desde 19> 16

(16, 19,11 , 15,10) -> (16, 11,19 , 15,10) - Trocar desde 19> 11

(16,11, 19,15 , 10) -> (16,11, 15,19 , 10) - Troca desde 19> 15

(16,11,15, 19,10 ) -> (16,11,15, 10,19 ) - Agora, como esses elementos já estão na ordem correta (19> 10), o algoritmo não os troca.

Segunda passagem:

( 16,11 , 15,10,19) -> ( 11,16 , 15,10,19) - Troca desde 16> 11

(onze, 16,15 , 10,19) -> (11, 15,16 , 10,19) - Trocar desde 16> 15

(11,15, 16,10 , 19) -> (11,15, 10,16 , 19) - Trocar desde 16> 10

(11,15,10,16,19) -> (11,15,10,16,19)

o está classificado, mas nosso algoritmo não sabe se está concluído. Conseqüentemente, ele precisa de outra passagem inteira sem nenhuma troca para saber se está classificado.

Terceira passagem:

(onze, 15,10 , 16,19) -> (11, 15,10 , 16,19)

(onze, 15,10 , 16,19) -> (11, 10,15 , 16,19) - Troca desde 15> 10

(11,10,15,16,19) -> (11,10,15,16,19)

(11,10,15,16,19) -> (11,10,15,16,19)

Quarta passagem:

( 11,10 , 15,16,19) -> ( 10,11 , 15,16,19) - Troca desde 11> 10

O resultado final é (10,11,15,16,19)

Vamos agora codificar isso -

Programa Python para implementar Bubble Sort

a = [16, 19, 11, 15, 10, 12, 14]

# loop repetindo len (a) (número de elementos) número de vezes para j no intervalo (len (a)): #inicialmente trocado é falso trocado = Falso i = 0 enquanto ia [i + 1]: #trocando a [i ], a [i + 1] = a [i + 1], a [i] #Alterando o valor de swapped swapped = True i = i + 1 #se swapped for false então a lista está classificada # podemos parar o loop se trocado == Falso: quebra de impressão (a)
 RESULTADO: 


No código acima, comparamos os números adjacentes e os trocamos se não estiverem na ordem correta. Repita o mesmo processo len (a) número de vezes. Atribuímos uma variável 'trocada' e a tornamos 'Verdadeira' se quaisquer dois elementos forem trocados em uma iteração. E se não houver troca de elementos, então a lista já está classificada e, portanto, não há mudança no valor de ‘trocado’ e podemos interromper o ciclo.

Com isso, chegamos ao final do blog intitulado “Como implementar o Bubble Sort em Python”. Espero que o conteúdo agregue valor ao seu conhecimento em Python.

Pratique o máximo possível e reverta sua experiência.

Tem alguma questão para nós? Mencione isso na seção de comentários deste blog “Como implementar o Bubble Sort em Python” e entraremos em contato com você o mais breve possível.

Para obter conhecimento aprofundado sobre Python, juntamente com seus vários aplicativos, você pode se inscrever para com suporte 24/7 e acesso vitalício.