Exemplo de utilização de Algoritmos de Ordenação
- Paulo Ricardo Siqueira Soares
- Aug 3, 2023
- 3 min read
Updated: Mar 3
Em estrutura de dados, falamos muito de algoritmos de ordenação, alguns são simples de serem implantados outros um pouco mais complexos e dependendo do CLP escolhido não são possíveis, para o alívio alguns CLP’s possuem funções de ordenação.
Agora, onde na prática poderíamos utilizá-los, bom além dos exemplos clássicos onde ordenamos número de ordens de produção, ou de ID de peças/produtos para exibição em tela ou envio de informações para sistemas supervisórios etc. Podemos também, utilizá-los para auxiliar em funções dentro do processo.
Para esse exemplo iremos fazer um filtro de sinais analógicos, se você não sabe o que seria implementar um filtro de sinais analógicos, aconselho a leitura do bom artigo do Luiz Costa: https://www.linkedin.com/pulse/automa%C3%A7%C3%A3o-industrial-implementando-um-filtro-digital-arruda-costa/?originalSubdomain=pt
Para a implementação do filtro de sinais analógicos existem 3 passos:
Coleta de Dados
Ordenação de dados
Obtenção do Valor médio.
Como podemos ver, nossos algoritmos de ordenação serão a resposta para o passo 2 dessa solução.
Para exemplificar de forma prática, iremos utilizar o algoritmo de ordenação Bubble Sort e Insertion Sort, esses dois algoritmos são de fácil implementação e tem um desempenho satisfatório em ordenações com poucos elementos.
Algoritmo Bubble Sort
Bubble sort é o algoritmo mais simples, mas o menos eficiente. Neste algoritmo cada elemento da posição i será comparado com o elemento da posição i + 1, ou seja, um elemento da posição 2 será comparado com o elemento da posição 3. Caso o elemento da posição 2 for maior que o da posição 3, eles trocam de lugar e assim sucessivamente. Por causa dessa forma de execução, o vetor terá que ser percorrido quantas vezes que for necessária, tornando o algoritmo ineficiente para listas muito grandes.
Esquema de funcionamento do Buble Sort
É verificado se o 3 é maior que 5, por essa condição ser falsa, não há troca.
É verificado se o 5 é maior que 1, por essa condição ser verdadeira, há uma troca.
É verificado se o 5 é maior que 2, por essa condição ser verdadeira, há uma troca.
É verificado se o 5 é maior que 4, por essa condição ser verdadeira, há uma troca.
O método retorna ao início do vetor realizando os mesmos processos de comparações, isso é feito até que o vetor esteja ordenado.

Exemplo de Bubble Sort em texto estruturado usando Siemens SCL:

Outro exemplo, em texto estruturado utilizando interação do tipo “Para”(FOR).

Algoritmo Insertion Sort
O Insertion sort é um algoritmo simples e eficiente quando aplicado em pequenas listas. Neste algoritmo a lista é percorrida da esquerda para a direita, à medida que avança vai deixando os elementos mais à esquerda ordenados.
O algoritmo funciona da mesma forma que as pessoas usam para ordenar cartas em um jogo de baralho como o pôquer.

Esquema de funcionamento do Insertion Sort
Neste passo é verificado se o 5 é menor que o 3, como essa condição é falsa, então não há troca.
É verificado se o quatro é menor que o 5 e o 3, ele só é menor que o 5, então os dois trocam de posição.
É verificado se o 2 é menor que o 5, 4 e o 3, como ele é menor que 3, então o 5 passa a ocupar a posição do 2, o 4 ocupa a posição do 5 e o 3 ocupa a posição do 4, assim a posição do 3 fica vazia e o 2 passa para essa posição.
O mesmo processo de comparação acontece com o número 1, após esse processo o vetor fica ordenado.
Exemplo de Insertion Sort em texto estruturado usando Siemens SCL:

Esse foi apenas um exemplo de onde podem ser aplicados algoritmos de ordenação, alguns CLPs como Controllogix da Rockwell possuem funções de ordenação (SRT), a Siemens possui funções de ordenação na Biblioteca LGF, Codesys tem o InsertedSort, porém muitas vezes não será o suficiente em virtude do tipo de dado que você quer organizar, que as vezes não é suportado ou a plataforma não possui um função de ordenação, por isso a importância de saber sobre esses algoritmos e avaliar qual será o mais interessante para você utilizar.
Abaixo um vídeo que eu gravei alguns anos atrás para esse artigo
Link para a biblioteca LGF Siemens usada para o artigo.
Até o próximo post!



Excelente conteúdo Paulo. Parabéns pela iniciativa.