Introdução ao Heap Sort em Python

Qualquer uma das linguagens de programação fornece várias funcionalidades em virtude de funções predefinidas. Ao alavancar os métodos predefinidos e os recursos oferecidos pela linguagem de programação, pode-se desenvolver uma aplicação complexa. Quando falamos em transformar os valores da lista no formulário classificado, a abordagem é chamada de classificação. Embora a saída da classificação seja a mesma, independentemente da abordagem de classificação, a melhor abordagem garante a eficiência da classificação dos dados. Quando se trata de classificar usando a linguagem de programação python, temos o método sort () que pode simplesmente aceitar o valor e classificá-lo em ordem crescente. Neste artigo, aprenderemos como classificar os dados da matriz em ordem crescente usando a classificação de heap e usaremos a linguagem de programação python para executar a implementação de código do heapsort.

Como o Heap Sort funciona em Python?

  • Antes de explicar o funcionamento do Python, é importante entender o que realmente é e como é diferente de outros algoritmos de classificação. O Heapsort pode ser considerado como a abordagem de classificação na qual o valor máximo da lista é encontrado e alterado para o último da matriz e o processo é repetido até que a lista seja transformada em uma lista classificada. a maneira que a diferencia dos outros métodos de classificação não é senão a abordagem que segue para classificar todos os valores da matriz. Consiste no processo recursivo que dura até que os valores na matriz sejam organizados em ordem crescente.
  • Agora vamos entender como a classificação de heap funciona em detalhes usando um exemplo. Suponha que arr é uma matriz que contém valores como 9, 5, 2. No início, os valores da matriz não são organizados de maneira classificada, mas depois de realizar a classificação da pilha, ela será transformada em ordem crescente. Quando o algoritmo de classificação de heap é aplicado a essa matriz, a primeira coisa que ele faz para encontrar nosso maior valor na matriz. Como 9 é o maior valor, ele será movido para o último índice da lista e todos os outros valores serão movidos um passo à esquerda para criar espaço para manter o maior valor. Uma vez que 9 é deslocado para o último índice ou matriz arr, a lista de valores será semelhante a 5, 2, 9.
  • Agora, a matriz ainda não está classificada, o que indica que o mesmo processo precisa ser repetido novamente. Agora, ao encontrar o maior valor da lista de valores não processados, 5 será selecionado como o segundo maior valor e será movido para o segundo último índice. Depois de mover 5 na segunda última posição, a matriz será transformada em uma matriz classificada e os valores serão organizados em ordem crescente de montagem como 2, 5, 9. É assim que a classificação de heap funciona. Em termos reais, ele identifica o valor máximo e o move para o final da matriz e continua executando o mesmo processo até que a matriz se transforme na matriz classificada.

Exemplos para implementar a classificação de heap em Python

Para aprender o conceito de heapsort, vamos entendê-lo usando o exemplo real. Implementaremos o algoritmo de classificação de heap usando a linguagem python. Para desenvolver o programa, usaremos o loop for para trazer o mecanismo de recursão e usaremos as condições de verificação para verificar as condições. No código abaixo, perform_heapsort é a função que aceita três argumentos: val_arr, num e count, em que var_arr é a matriz, enquanto num e count são de um tipo de dados inteiro. A idéia do código abaixo é encontrar o maior número e mantê-lo temporariamente na variável max_val até que ele seja deslocado para o final da matriz. Se uma instrução tiver sido usada para garantir que o maior valor seja transferido para a posição apropriada e essa posição esteja sendo impedida de ser atualizada pelo próximo maior valor da lista. O programa repetirá a abordagem de encontrar o maior valor e deslocá-lo para o final até que a lista seja sintonizada no valor classificado.

Código:

def perform_heapsort(val_arr, num, count):
max_val = count
counter1 = 2 * count + 1
counter2 = 2 * count + 2
if counter1 < num and val_arr(count) < val_arr(counter1):
max_val = counter1
if counter2 < num and val_arr(max_val) < val_arr(counter2):
max_val = counter2
if max_val != count:
val_arr(count), val_arr(max_val) = val_arr(max_val), val_arr(count) perform_heapsort(val_arr, num, max_val)
def heapSort(val_arr):
num = len(val_arr)
for count in range(num, -1, -1):
perform_heapsort(val_arr, num, count)
for count in range(num-1, 0, -1):
val_arr(count), val_arr(0) = val_arr(0), val_arr(count) # swap
perform_heapsort(val_arr, count, 0)
val_arr = ( 52, 91, 64, 252, 36, 91, 5, 35, 28) heapSort(val_arr)
num = len(val_arr)
print ("Values after performing heapsort")
for count in range(num):
print ("%d" %val_arr(count)),

Neste programa, os valores foram atribuídos manualmente através do código. O var_arr é a matriz que contém os valores. Neste exemplo, atribuímos 9 valores à matriz. Os valores na matriz serão transmitidos para o método denominado perform_heapsort. Depois que os valores digitarem o método, ele será processado e o programa começará a encontrar o maior valor da lista. O valor máximo nessa matriz é 252, portanto, será deslocado para o final da matriz e esse processo será aplicado em todos os valores até que a matriz se transforme na matriz classificada. Depois que a matriz é classificada pelo programa, a saída será exibida na saída.

Resultado:

Conclusão

Heapsort é um dos vários algoritmos de classificação. A saída final desse algoritmo é a lista classificada que tem os dados organizados em ordem crescente. Como o processo é repetido e sempre que todos os valores são deslocados para a esquerda para ajustar o valor máximo da lista no final da matriz, ele é considerado o algoritmo de classificação menos eficiente. Essa abordagem de classificação pode ser aproveitada no aplicativo que deve processar um pequeno número de valores.

Artigos recomendados

Este é um guia para Heap Sort em Python. Aqui discutimos a introdução ao Heap Sort no Python, como o Heap Sort funciona no Python e os Exemplos para implementar o Heap Sort no Python. Você também pode ler nossos outros artigos sugeridos para saber mais.

  1. O que é Ciência da Computação?
  2. O que é aprendizado de máquina?
  3. Segurança de aplicativos da Web
  4. Recursos do Python
  5. Guia de classificação de algoritmos em Python