Para quem pretende trabalhar na área do desenvolvimento de software ou aprendizado de máquina, saber o que são algoritmos e como eles funcionam na área de TI é essencial.
Afinal, entender como é possível solucionar um problema da vida real de forma lógica é justamente o primeiro passo para se aprender a programar. Em seguida, é preciso saber descrever essa solução de uma maneira que o computador entenda.
É exatamente nesse ponto que os algoritmos entram em ação. Quer saber mais sobre o assunto? Neste texto você verá:
- O que são algoritmos?
- Como surgiram os algoritmos? Entenda a história!
- Como é formada a estrutura dos algoritmos?
- O que são algoritmos não estruturados?
- O que são algoritmos estruturados?
- Quais as vantagens de usar os algoritmos?
- Exemplo de algoritmo
- Como os algoritmos são usados na programação?
- Quais os algoritmos mais conhecidos na internet?
Continue a leitura e confira!
O que são algoritmos?
Algoritmos são um conjunto finito de passos elementares que são aplicados sistematicamente até que a solução seja atingida.De forma simples, podemos dizer que um algoritmo define o caminho que deve ser seguido para chegar até a solução de um determinado problema.
À primeira vista, esse conceito pode parecer complexo, mas basta trazer para o contexto do nosso cotidiano que fica mais fácil entender. Isso porque existem várias tarefas do nosso dia a dia que são basicamente algoritmos, como seguir um manual de instruções para instalar um eletrodoméstico. Fazer um bolo seguindo uma receita é outro ótimo exemplo disso. Nela, temos os ingredientes — ou seja, dados que serão manipulados para atingir a solução —, os passos que devem ser feitos para executar a tarefa e, no final, atingimos o resultado esperado, que é o bolo pronto.
Como surgiram os algoritmos? Entenda a história!
O surgimento do termo algoritmo veio do nome do matemático Abu Abdullah Muhammad Bin Musa Al-Khwarizmique, pois, quando seu sobrenome foi transposto para o latim, ele ficou como Algoritmi. No caso, esse matemático é o responsável pelos primeiros passos do sistema de numeração decimal no Ocidente.
Abdullah também foi responsável por criar um método para resolução de equações de primeiro e segundo grau. Antigamente, eram utilizados numerais hindu-arábicos para a realização dos cálculos dessas operações.
Isso quer dizer que os algoritmos surgiram muito antes de existirem os computadores? Isso mesmo! Na Grécia Antiga, matemáticos antigos como Pitágoras, Euclides, Arquimedes faziam o uso de algoritmos para a elaboração de seus teoremas e filosofias, tais como a determinação do máximo divisor comum (MDC), a inserção do número Pi e sua aproximação, dentre outros.
No ano de 1800, foi criado o sistema booleano graças a George Boole. O sistema é utilizado para operações e construção de circuitos lógicos nos nossos equipamentos. Seu trabalho foi primordial para os próximos que surgiram, como o de Ada Lovelace, por exemplo.
Assim, em 1930, os matemáticos Emil Post e Alan Turing iniciavam os primeiros passos para construir o primeiro computador moderno, utilizando vários algoritmos na produção do equipamento.
Com o passar dos anos, essas regras ficariam envolvidas na construção de sistemas de avaliação. Os teoremas podem ser utilizados em nosso cotidiano para diversas operações matemáticas. Serão exibidos alguns dos principais algoritmos nos tópicos a seguir do artigo. Agora, verificaremos um exemplo prático de algoritmo.
Como é formada a estrutura dos algoritmos?
Lógica
A lógica de programação ajuda-nos a entender como montar um algoritmo a partir de ferramentas básicas. Antes de iniciar a codificação do programa, devemos entender como ele funcionará para definirmos a sequência de comandos, sem ocorrerem erros.
De uma forma simples, os algoritmos dizem respeito a um conjunto de instruções bem definidas, finitas e que, ao serem executadas, precisam gerar um resultado. Por exemplo, uma receita de suco de laranja, com o passo a passo em lista, que organiza o processo desde o uso do primeiro ingrediente, até obter o resultado final.
Variáveis
As variáveis são expressões que utilizam letras e números (por exemplo, “x = 5” ou “y = 4”), similares ao que aprendemos na Matemática. Elas auxiliam no armazenamento de valores trabalhados durante a execução dos algoritmos.
Comandos de repetição
Essa ferramenta é justamente a determinação da condição para que uma ação seja executada ou interrompida, utilizando os comandos “se” e “enquanto”. Por exemplo: “ande até chegar à Avenida Paulista”;
Processamento
Toda ferramenta precisa de dados que alimentam o sistema e permitirem que o algoritmo trabalhe. Nesse caso, se encaixam vídeos, imagens, arquivos de texto, memórias de dispositivos eletrônicos, entre outros;
Dados de saída
É a categorização das informações internas, mostrando como elas devem ser processadas — por exemplo, de que forma se apresentam texto, números, frações, etc;
O que são algoritmos não estruturados?
Algoritmos não estruturados são passos que utilizamos em nosso cotidiano para a realização de alguma tarefa. Por exemplo, para comer um bombom, devemos realizar os seguintes passos:
- Passo 1: Pegar o bombom;
- Passo 2: Retirar o papel;
- Passo 3: Comer o bombom;
- Passo 4: Jogar o papel no lixo.
Essa tarefa é apenas uma das várias que você pode realizar durante o dia, tais como dirigir até o trabalho, tomar banho, escovar os dentes, jogar bola, entre outras. Para escrever um algoritmo de forma precisa e entendível, devemos:
- Ter atenção em como a ordem das tarefas será apresentada, pois, no algoritmo anterior, por exemplo, não podemos comer o bombom antes de tirar a sua embalagem;
- Colocar todos os detalhes possíveis que a tarefa precisará ter;
- Ter um início e um final;
- Como cada tarefa é uma parte de uma instrução, preste atenção em sua definição.
O que são algoritmos estruturados?
Os algoritmos estruturados, com a utilização de um computador, procuram resolver problemas e, para isso, utilizam códigos que podem ser escritos em inúmeras linguagens de programação, de várias maneiras.
Vejamos um exemplo de um algoritmo estruturado, escrito na linguagem de programação JavaScript:
public class Carro extends MeiosTransporte {
private String marca;
public String getMarca() {
return marca;
}
public void setMarca(String marca) {
this.marca = marca;
}
}
No código acima, temos uma classe Carro que estende outra classe chamada MeiosTransporte. Depois disso, declaramos uma variável (marca do carro) e, para pegar e posicionar essa variável, implementamos os atributos get e set.
Existem algumas dicas para se escrever algoritmos estruturados de forma concisa e que outras pessoas consigam entender ele. São elas:
- Evitar a utilização de nomes longos para declaração de atributos;
- Não inserir advérbios nem adjetivos em declarações;
- Utilizar a identação em seu código, para deixar a estrutura mais aninhada possível;
- Não inserir condições sem necessidade em seu código;
- Deixar seu algoritmo estruturado o mais legível possível.
Quais as vantagens de usar os algoritmos?
As vantagens de utilizar esses conceitos são os seguintes:
- Melhora nossa capacidade de organização;
- Melhora nossa capacidade de resolução de problemas;
- Melhora nossa capacidade de concentração;
- Melhora nossa capacidade de raciocínio lógico.
Como os algoritmos nos fazem pensar de forma um pouco mais abrangente para os problemas, todas as capacidades acima são melhoradas. Inclusive, o fundador e presidente da Apple, Steve Jobs, defende a ideia de que todas as pessoas deveriam saber programar, pois isso melhora nossa capacidade de pensar.
Exemplo de algoritmo
Existem várias formas de se representar um algoritmo, como a descrição narrativa, o fluxograma ou o pseudocódigo. Em geral, na programação o mais usado é o pseudocódigo, também chamado de portugol, pois ele é bem estruturado e se assemelha a uma linguagem de programação. Abaixo, separamos o algoritmo “Tomar café” para você entender melhor.
algoritmo "Tomar café"
inicio
partir o pão
passar manteiga no pão
pegar a xícara
colocar café na xícara
sentar na cadeira
comer o pão
beber o café
fimalgoritmo
Como os algoritmos são usados na programação?
Agora que você já sabe o que são algoritmos, vamos falar um pouco sobre como eles são usados na programação. Como você já deve saber, as pessoas programadoras precisam escrever códigos capazes de resolver problemas complexos.
Porém, para fazer isso, é necessário destrinchar essas questões em problemas menores para que a linguagem da máquina seja capaz de entender e executar o que foi pedido. Na área da computação, o algoritmo funciona dessa forma.
Por isso, antes de escrever o código em uma linguagem de programação, a pessoa responsável pelo desenvolvimento deve elaborar uma solução lógica e eficiente por meio de um algoritmo. Afinal, de nada adianta conhecer a sintaxe de uma linguagem, se você não souber como criar a melhor resolução para um determinado problema.
Devido a isso, os algoritmos são essenciais para facilitar o processo de desenvolvimento de software. Assim, ao longo da história da computação, foram produzidos diversos algoritmos para resolver questões complexas, como ordenar uma grande quantidade de números, encontrar o caminho mais curto em um grafo ou encontrar um elemento dentro de uma base de dados gigantesca. Alguns deles são:
- quicksort;
- heapsort;
- algoritmo de Dijkstra;
- busca em árvore binária;
- busca linear.
Contudo, para que fique mais fácil de compreender, vamos mostrar apenas um exemplo simples de algoritmo em pseudocódigo para somar dois números. Veja:
algoritmo "Soma"
var
num1, num2, resultado : inteiro
inicio
escreva ("Digite o primeiro número")
leia (num1)
escreva ("Digite o segundo número")
leia (num2)
resultado <= num1+num2
escreva ("Resultado =", resultado)
fimalgoritmo
Quais os algoritmos mais conhecidos na internet?
O Google possui o algoritmo PageRank, que funciona em conjunto com as pesquisas feitas nele. Esse algoritmo faz uma avaliação no número e em como os links estão dispostos para serem clicados e levados para outras páginas. Assim, ele determina o grau de importância de determinado site e, em teoria, quanto mais importante um site for, maior a chance de terem links redirecionando para ele.
O algoritmo do Facebook foi criado para manter seu interesse no conteúdo apresentado ao mostrar mais daquilo que você curtiu, compartilhou ou visualizou por mais tempo que o comum. Ou seja, as fotos em que você curte ou compartilha com mais frequência, qual o tipo de postagem que você mais se interage, tudo isso é considerado no filtro de conteúdo do Facebook.
Anteriormente, os posts eram exibidos conforme eram postados, seguindo uma ordem cronológica. Contudo, com a implementação do algoritmo do Instagram em meados de 2016, passou-se a considerar os conceitos de Temporalidade, Engajamento e Relacionamentos, classificando os conteúdos conforme a relevância de cada perfil e seus interesses.
Youtube
Inicialmente, em 2005, o algoritmo do Youtube considerava a quantidade de visualizações que um vídeo tinha para ranqueá-lo. Contudo, em 2012, foi notado que essa forma não tinha nenhuma garantia dos conteúdos e, então, o algoritmo passou a considerar o tempo de visualização, garantindo que as pessoas usuárias acessem conteúdos que sejam relevantes.
Spotify
O Spotify utiliza um algoritmo de machine learning em sua plataforma. No caso, ele pretende que sempre haja novidades para as pessoas usuárias, sejam elas semanais, mensais ou até anuais, como, por exemplo, as músicas mais ouvidas no ano. Para isso, a plataforma considera o gosto musical de cada pessoa, artistas que são mais ouvidos, entre outros, e cria playlists personalizadas. .
E aí, conseguiu entender o que são algoritmos? Esperamos que sim. Porém, antes de nos despedirmos, é importante ressaltar que a complexidade de um algoritmo vai depender do problema que ele precisa resolver. Por isso, algumas estruturas de controle de fluxo (como se, senão e enquanto) são usadas no pseudocódigo para criar soluções que contemplem vários cenários.
Praticamente toda empresa de tecnologia possui um algoritmo. Alguns deles impactam diariamente milhões de pessoas como o Facebook e o Instagram. A grande vantagem dos algoritmos é que eles melhoram a nossa capacidade de tomada de decisão, pois, podemos pensar com calma antes de agir perante a uma determinada pendência.
Este conteúdo foi útil para você? Esperamos que sim! Para seguir aprendendo, confira nosso próximo post e descubra como iniciar os estudos na área da programação!
2 comments