Python de classificação de bolhas

Python de classificação de bolhas
Classificação é o processo de organização dos valores em ordem presente na forma de listas. Diferentes tipos de classificação discriminam por causa de suas técnicas e abordagens de uso, como classificação rápida, classificação de seleção, classificação de mesclagem, tipo de bolha, etc. Este tutorial está relacionado ao tipo de bolha.

Tipo de bolha

Esta é a organização de elementos de uma matriz que lida com o uso do algoritmo de classificação mais simples aplicado ao trocar os elementos adjacentes repetidamente se o pedido estiver errado.

Torne de bolha funcionando

Para classificar os valores em ordem crescente, a primeira iteração inclui o processo de comparação e troca. O primeiro valor do índice e o segundo são comparados. Se a condição for cumprida, a troca ocorre e será repetida até o fim.

Código de algoritmo / pseudo para o tipo de bolha

função (matriz)
para eu certo valor
Troque o LeftValue e o RightValue
Função final

Exemplo 1

O mecanismo de classificação de bolhas é aplicado à linguagem de programação Python usando a função denominada Bubble Sort. A sintaxe para a função é que uma palavra -chave 'def' é usada junto com o nome da função. No parâmetro da função, passamos uma matriz a ser classificada pela função. Então agora veremos a funcionalidade completa ou dize que o núcleo de todo o processo de classificação é definido no corpo da função. Em primeiro lugar, declararemos o comprimento da matriz a uma variável por meio de um operador de atribuição usando a função interna len ().

# n = len (arr)

Para acessar qualquer elemento em uma matriz, sempre usamos um loop para qualquer linguagem de programação. Assim, o Python também utiliza o loop "for" no processo de classificação para torná -lo viável para o usuário. Portanto, a matriz será percorrida usando um loop para um loop.

# Para i no intervalo (n - 1):

Aqui "eu" é a variável que representa o número do índice na matriz com a matriz de um tamanho fixo menos um. Como 'n' representa o tamanho da matriz, então (n-1) representa a travessia do loop para a posição do tamanho menos um para que possamos iterar o loop uma vez novamente após uma única iteração.

Como descrito acima, os dois índices adjacentes mais próximos são comparados para o tipo de bolha. Ao usar o loop acima, acessaremos um índice. Diga o primeiro, para acessar o próximo índice; Além disso, precisamos de um loop. Este é o loop interno, e o acima mencionado é declarado como um loop externo. Este fenômeno se assemelha à matriz bidimensional (2D). Então, vamos declarar o loop interno.

# para j em range (0, n-i-1):

A variável 'J' é como o 'i' do loop externo, mas isso representará o próximo valor do valor atual do índice 'i', pois aplicamos a lógica de 'n-i-1', então o loop irá itera até a posição de subtrair o valor de "i" do tamanho da matriz junto com o valor '-1', isso levará aos dois índices adjacentes na matriz.

Acessamos dois valores na matriz e é hora de compará -los como sabemos que a comparação é feita através dos colchetes angulares. Precisamos usar o suporte '>' para a classificação ascendente.

Se arr [j]> arr [j + 1]:
arr [j], arr [j +1] = arr [j + 1], arr [j]

Se o valor no lado esquerdo que é acessado primeiro for maior que o valor à direita, acessado posteriormente, os dois valores serão trocados diretamente sem usar qualquer envolvimento do terceiro lugar. No outro caso, mova -se em direção à próxima posição. Esta era a principal função lógica do tipo de bolha.

Pular para fora dos loops. Depois disso, declaramos a matriz e a passamos para a função através de uma chamada de função.

Bubblesort (arr).

Depois disso, a matriz classificada será impressa. No console resultante, o valor resultante será exibido.

Você pode ver que a matriz de entrada contém os valores aleatórios, enquanto, na matriz resultante, todos os elementos são classificados em ordem crescente.

Exemplo 2

O exemplo acima lida com a continuação de todas as comparações possíveis, mesmo que toda a matriz já esteja classificada. Isso leva à extensão do tempo da execução ao longo da matriz. Então, para tornar o tempo de execução limitado, usaremos uma terceira variável. Aqui usamos uma variável booleana para definir o valor da variável como verdadeiro se ocorrer a troca. Caso contrário, é considerado falso.

Após cada iteração, se nenhuma troca ocorrer devido à troca, o valor será falso. Refere -se quando todos os elementos de uma matriz já são classificados, e não há mais exigência para classificá -los. Esse fenômeno é facilmente usado e pode reduzir o tempo de execução e se beneficiar da otimização de bolhas.

Dentro da função de classificação da bolha, o comprimento foi declarado uma variável. Uma variável adicional trocada é declarada como falsa por padrão inicialmente. Mas seu valor muda sempre que o processo de troca ocorre.

Troca = false

Dentro do loop externo e interno, ocorre a comparação entre os valores dos índices especificados; Se os valores precisarem ser trocados, a variável trocada será transformada em 'verdadeiro' e os valores são trocados com sucesso.

Mas se não houver dois valores, quando os valores já estão dispostos, nenhuma troca ocorre, de modo que a variável trocada permanece falsa. E então o intervalo ocorre. Este cheque é alcançado através de uma estatura IF.

Se trocado == false

Quebrar

Este intervalo será responsável por impedir que o loop seja executado mais. Como neste exemplo, o intervalo ocorrerá no índice de 1,2 e 3.

Depois de salvar o arquivo, os valores de execução podem ser vistos através do console. Você pode ver os valores resultantes que são organizados em ordem crescente.

Exemplo 3

Este exemplo segue o mesmo conceito que explicou no segundo exemplo usando o mesmo booleano trocado com o uso de outra variável no momento da troca dos valores. Este é um valor de temperatura. Este é um modelo que armazena os valores temporariamente.

O mesmo exemplo acima é usado aqui. Considere apenas o procedimento de troca aqui. O primeiro valor de índice é salvo na variável 'Temp' dentro dos loops. E esse espaço é preenchido com o valor ao lado dele na matriz com que o valor anterior é comparado. E esse próximo valor agora é substituído pelo valor presente na temperatura. Isso é chamado de atribuição indireta de valores e usa mais etapas do que a atribuição direta de valores.

A variável trocada será declarada como verdadeira no caso de troca. Executar o código para ver os resultados.

Conclusão

O artigo 'Bubble Sort' contém uma breve introdução à metodologia de classificação através do algoritmo. Um processo detalhado de classificação de bolhas com uma abordagem passo a passo é discutida. A ferramenta Spyder é recomendada para a implementação de programas relacionados ao Python. Cada exemplo elementar descreve o uso da espécie de bolha na linguagem python.