Programação x Cotidiano

Programação e Algoritmos

Vivemos em um momento de rápida evolução tecnológica. Somos constantemente apresentados a atualizações, novas ferramentas, aparelhos e sistemas que cada vez mais nos conectam e simplificam nosso dia a dia. Os seus propósitos para uso podem variar bastante, seja para trabalho em planilhas, escrever textos, jogar ou atividades mais complexas.

E, por acaso, você já parou para pensar como os computadores, tablets ou smartphones realizam todas as tarefas exatamente da forma com a qual você pede? A resposta para esta pergunta é mais simples do que parece: eles seguem as instruções que você passa.

Mas para que eles consigam entender o que você fala, é necessário uma linguagem mais específica. Para fazer esta interpretação entre homem e máquina, foram desenvolvidas as linguagens de programação. Linguagens que utilizam uma lógica para serem escritas e é aí que entram os algoritmos.

Um algoritmo nada mais é do que uma receita que mostra passo a passo os procedimentos necessários para a resolução de uma tarefa. Ele não responde a pergunta “o que fazer?”, mas sim “como fazer”. Em termos mais técnicos, um algoritmo é uma sequência lógica, finita e definida de instruções que devem ser seguidas para resolver um problema ou executar uma tarefa.

Embora nem se perceba, uma forma de algoritmos são utilizados de maneira intuitiva e automática, quando você executa tarefas comuns. Como por exemplo, a sequência para trocar uma lâmpada queimada:

Início
Verifica se o interruptor está desligado;
Procura uma lâmpada nova;
Pega uma escada;
Leva a escada até o local;
Posiciona a escada;
Sobe os degraus;
Para na altura apropriada;
Retira a lâmpada queimada;
Coloca a lâmpada nova;
Desce da escada;
Aciona o interruptor;
Se a lâmpada não acender, então:
Retira a lâmpada queimada;
Coloca outra lâmpada nova
Senão
Tarefa terminada;
Joga a lâmpada queimada no lixo;
Guarda a escada;
Fim

Para os programadores, o desafio é escrever um comando ao computador que seja o mais simples e eficiente para responder a uma questão ou executar uma tarefa. Isso requer um amplo conhecimento sobre o processo a ser automatizado. Caso contrário, o desenvolvedor pode aplicar um método tão ruim que demora até se chegar à resposta.

Para ilustrar a estratégia de desenvolvimento de um algoritmo para software, vamos pegar como exemplo com 1.024 contatos. Se o usuário procura um nome, a fórmula algorítmica mais ingênua ordenaria ao computador que verificasse se o primeiro nome na lista é o procurado. Em caso de resposta negativa, passaria ao segundo nome. Esta fórmula pode levar até 1.024 passos para chegar à resposta. Porém, se a máquina pegar o contato que está no meio da lista e se pergunta: o nome procurado está acima ou abaixo deste? Após a resposta, pega a metade que permaneceu e faz a mesma coisa. Assim, o computador vai encontrar o nome pesquisado em até 10 passos, no máximo.

Um dos exemplos de algoritmo citados como de maior sucesso é o mecanismo de busca do Google, usado para encontrar páginas da internet sobre um determinado tema. Desenvolvido pelos então estudantes de computação norte-americanos Larry Page e Sergey Brin, a partir de 1995, o Google se dispôs a resolver o seguinte problema: as pessoas tendem a consultar os sites sugeridos pela busca seguindo a ordem em que aparecem na lista, de cima para baixo. Portanto, as primeiras páginas listadas precisam conter a melhor informação.

Os primeiros buscadores organizavam os sites em ordem alfabética, como numa lista telefônica. E, também como em uma lista telefônica, as empresas costumavam nomear seus sites de forma a aparecer na frente (usando, por exemplo, o nome “AAA Padaria Cometa”). Mais tarde, outros fatores passaram a ser usados como parâmetro da pesquisa, como o título e a descrição da página. Porém o problema persistia.

A inovação do Google foi promover uma grande eleição dos “melhores da internet” a partir do uso de algoritmos. Um site é mais popular (e aparece primeiro na pesquisa) à medida em que outros sites façam referência a ele, por meio de links. E quando os sites mais populares indicam outras páginas, essas acabam recebendo parte da popularidade concedida ao site inicial.

Se, por exemplo, 100 sites apontam para uma página sobre comida chinesa, ela vai aparecer na frente de uma outra sugerida por 12 sites. Mas se uma dessa dúzia de sugestões for do site do jornal The New York Times, esta segunda página vai ser catapultada para cima, porque o Times tem milhões de páginas apontando-o como referência.

Fontes:

https://www.gazetadopovo.com.br/vida-e-cidadania/o-uso-cotidiano-do-algoritmo-4x3n9sw4bkhoam6fzqcp27mfi

https://www.tecmundo.com.br/programacao/2082-o-que-e-algoritmo-.htm