Algoritmo
O que é um algoritmo:
Um algoritmo é uma sequência de instruções ou comandos realizados de maneira sistemática com o objetivo de resolver um problema ou executar uma tarefa.
A palavra "algoritmo" faz referência ao matemático árabe Al Khwarizmi, que viveu no século IX, e descreveu regras para equações matemáticas.
Os algoritmos são como uma receita de bolo: uma sequência de ações que devem ser executadas para que o objetivo final — o bolo pronto — seja atingido.
Aplicam-se os algoritmos nas tarefas simples do dia a dia e também nos programas computacionais complexos que identificam o comportamento do consumidor na internet.
Todas as funções dos computadores, smartphones e tablets, por exemplo, resultam de algoritmos. Essas máquinas conseguem realizar bilhões de comandos em poucos segundos.
Exemplos de Algoritmos
Os algoritmos também são usados na programação computacional e na internet, especialmente pelos motores de busca e pelas redes sociais.
Algoritmos em motores de busca (Google)
Um dos exemplos mais lembrados é o algoritmo do motor de busca do Google, que realiza diversas operações para organizar a maneira como o resultado das pesquisas aparecem para o usuário.
Quando um usuário pesquisa no Google por uma palavra-chave, como "o que é democracia", a ordem dos resultados mostrados depende de diversos cálculos que o algoritmo realizou para colocá-los naquela posição.
Esses cálculos estão baseados em diversas variáveis, como a qualidade e a atualidade do conteúdo, a qualidade do site onde está o conteúdo e quanto tempo as pessoas costumam ficar naquela página.
O algoritmo do Google é bastante complexo e de tempos em tempos é atualizado, de modo a oferecer uma melhor experiência e apresentar os melhores resultados para os usuários.
Algoritmos em redes sociais
As redes sociais também são programadas com complexos algoritmos. Os feeds do Facebook, Instagram e Twitter, por exemplo, mostram postagens e anúncios conforme o comportamento do usuário.
Isso significa que nem todas as postagens de seus amigos irão aparecer no seu feed. Os algoritmos dessas redes sociais selecionam as que fazem mais sentido conforme a sua preferência.
O algoritmo do Facebook, chamado de EdgeRank, por exemplo, seleciona os conteúdos mais relevantes para você de acordo com diversos fatores, como:
- Publicações e páginas que você curte;
- Pessoas com quem você interage;
- Páginas em que você deixa comentários;
- Seus compartilhamentos.
O Spotify é outro exemplo de aplicativo e rede social que utiliza algoritmos para oferecer aos usuários uma experiência mais personalizada. Todas as semanas o aplicativo oferece uma playlist chamada “Descobertas da semana”.
Essa playlist contém 30 músicas que nunca foram tocadas pelo usuário no aplicativo, mas que são parecidas com outras músicas que ele costuma ouvir.
O objetivo é apresentar para o usuário as músicas e bandas que ele ainda não conhece, mas que provavelmente são compatíveis com o seu gosto musical.
Os algoritmos utilizados pelas redes sociais também podem sofrer mudanças. Um bom exemplo disso é o Youtube: inicialmente, a plataforma priorizava os vídeos com o maior número de visualizações.
No entanto, com a proliferação de clickbaits e web robots (bots), artimanhas utilizadas para fraudar a contabilização das visualizações, aumentando-as artificialmente, o Youtube modificou a métrica do seu algoritmo, que começou a priorizar o tempo de visualização dos vídeos.
Algoritmos na programação computacional
Algoritmo é um conceito muito importante para a programação, pois todas as máquinas e programas de computador funcionam a partir de sequências de ações finitas que levam à realização de uma tarefa.
O papel do programador é pensar em todas as etapas das tarefas e descrevê-las de maneira objetiva e clara para que o computador possa realizá-las.
Um exemplo seria um programa que mostra se um aluno foi aprovado ou não em determinada disciplina. Considerando que a nota final seja a média das duas provas realizadas no semestre, os comandos seriam:
- Coletar a nota nas duas provas realizadas;
- Calcular a média aritmética entre elas;
- Se o resultado for maior que 7, o aluno foi aprovado;
- Se o resultado for menor que 7, o aluno foi reprovado.
No entanto, os computadores não entendem a linguagem escrita dessa maneira, por isso os programadores devem "traduzir" esses comandos para linguagens de programação. Alguns exemplos de linguagem de programação são:
- Java
- Linguagem C
- Linguagem C++
- Linguagem C#
- Python
As operações de um algoritmo são realizadas de maneira muito rápida pelas máquinas. Um notebook comum, por exemplo, costuma fazer mais de um bilhão de operações por segundo.
Essa velocidade de operação revolucionou o mundo computacional, pois as máquinas podem fazer em pouquíssimo tempo cálculos que o ser humano levaria dias, meses ou até mesmo anos para realizar.
Aplicação do algoritmo no dia a dia
Os algoritmos surgem na matemática para descrever as regras para as equações algébricas, mas eles podem ser aplicados a qualquer sequência de ações finitas que busquem a resolução de um problema.
Todas as tarefas que executamos no dia a dia podem ser transformadas em algoritmos, basta destrinchar todas as ações necessárias para se chegar ao objetivo determinado.
Se fizéssemos um algoritmo para o preparo do café, por exemplo, poderíamos ter as seguintes etapas:
- ferver a água;
- colocar o pó no filtro;
- desligar a água;
- passar a água pelo pó de café.
Os algoritmos utilizados em computadores são mais complexos e também envolvem possibilidades. Considere o exemplo de um mouse sobre um navegador de internet.
O comando de fechar a tela é dado por um algoritmo que entende que:
- Se o mouse clicar no “x”, a página deve ser fechada;
- Se o mouse não clicar no “x”, nada deve ser feito.
Esse algoritmo pode ser estruturado em um fluxograma:
Basicamente, os algoritmos são compostos por dados de entrada (input), processamento e dados de saída (output). Essa estrutura pode ser facilmente entendida com o exemplo de uma calculadora:
- Dados de entrada: valores e operações a serem realizadas
- Processamento: cálculos realizados pela máquina
- Dados de saída: resultado da operação
Bibliografia:
- OLIVEIRA, Jayr F.; MANZANO, José A. N. G.. Algoritmos: Lógica para desenvolvimento de programação de computadores. São Paulo: Erica/Saraiva, 2016.
-
CORMEN, Thomas H. et al.. Algoritmos: teoria e prática. Amsterdã: Elsevier, 2012.
Veja também: